1. self-hosted runners란?
자체 러너를 호스팅하고 GitHub Actions workflows이서 job을 실행하는데 사용되는 환경을 사용자 지정할 수 있다.
self-hosted runner는 GitHub의 Actions에서 jobs를 실행하기 위해 배포하고 관리하는 시스템이다.
(GitHub Actions에 대해서는 GitHub Docs를 참조하자.)
self-hosted runner GitHub-hosted runners에서 제공하는 하드웨어, 운영체제, 소프트웨어 도구보다 더 많은 제어를 할수 있도록 제공한다. self-hosted runners를 사용하여 더 큰 작업을 실행하기 위한 처리 능력 또는 메모리로 요구사항을 충족하는 맞춤형 하드웨어 구성을 생성할 수 있다. 로컬 네트워크에서 사용 가능한 소프트웨어를 설치, 그리고 GitHub-hosted runners에서 제공하지 않는 운영체제를 선택할 수 있다. self-hoisted runners는 물리, 가상, 컨테이너, 온프레미스나, 클라우드 환경이 될 수 있다.
관리계층의 다양한 레벨에서 self-hosted runner를 추가할 수 있다.
- Repository-lever runners는 단일 레포지토리 전용이다.
- Organization-level runners는 조직의 여러 레포지토리의 jobs를 처리할 수 있다.
- Enterprise-level runners는 기업 계정의 여러 레포지토리에 할당할 수 있다.
2. GitHub-hosted와 self-hosted runners의 차이점
GitHub-hosted runners는 신속하고, 단순한 방법으로 workflow를 실행할수 있게 제공해주고, self-hosted runners는 자체 커스텀 환경에서 높은 구성 가능성을 제공한다.
GitHub-hosted runners:
- 자동으로 업데이트되느 운영체제 및 사전 설치된 패키지들과 도구들 및 self-hosted runner 애플리케이션을 사용할 수 있다.
- 관리와 유지보수를 GitHub에서 한다.
- 모든 job 실행에 깨끗한 인스턴스를 제공한다.
- GitHub plan안에서 무료 시간을 사용할 수 있다.(무료 시간을 초과하면 분당 요금이 적용된다.)
Self-hosted runners:
- 러너의 자동 업데이트를 비활성화할 수 있지만 self-hosted runner 애플리케이션에 대한 자동 업데이트만 수신한다.
- 사전 결제된 클라우드 서비스나 로컬 머신을 사용할 수 있다.
- 하드웨어나 운영체제, 소프트웨어, 보안 요구사항에 맞게 커스터마이징할수 있다.
- 모든 job 실행에 깨끗한 인스턴스가 필요하지 않는다.
- GitHub Actions를 무료로 사용할 수 있으나, runner 머신에 대해 유지보수 비용을 부담해야 한다.
3. self-hosted runner 머신의 요구사항
다음 요구사항을 충족하는 한 모든 시스템을 self-hosted runner로 사용할 수 있다.
- 머신에 self-hosted runner애플리케이션을 설치하고 실행할 수 있다. 자세한 내용은 "Supported architectures and operating systems for self-hosted runners."에서 볼 수 있다.
- 머신은 GitHub Actions와 통신할 수 있다. 자세한 정보는 "Communication between self-hosted runners and GitHub."에서 확인할 수 있다.
- 머신에는 실행하려는 workflow type에 대한 충분한 하드웨어 리소스가 있다. self-hosted runner 애플리케이션 자체에는 최소한의 리소스만 필요하다.
- 만일 Docker container actions나 service container를 사용해서 workflows를 실행하기를 원한다면, 반드시 Linux머신에다가 Docker가 반드시 설치되어 있어야 한다.
#References
https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners
'Git' 카테고리의 다른 글
[Git] 특정 커밋의 상태 clone하기 (0) | 2022.09.22 |
---|---|
[GitHub] 토큰 인증 로그인(Please use a personal access token instead) 사용법 (0) | 2022.09.18 |
[GitHub] Contribution 그래프에 비공개 기여 항목도 보이도록 설정 (0) | 2022.04.14 |
.gitignore 파일이 동작하지 않을때 (.gitignore not working) (0) | 2022.04.04 |
Git .gitignore 파일 적용 (0) | 2022.04.04 |