VirtualBox
VirtualBox를 사용하여 모든 빌드에 대한 깨끗한 빌드 환경을 제공할 수 있습니다. 이 Executor는 VirtualBox에서 실행할 수 있는 모든 시스템을 지원합니다. 유일한 요구 사항은 가상 머신이 SSH 서버를 노출하고 Bash 또는 PowerShell과 호환되는 쉘을 제공하는 것입니다.
개요
프로젝트의 소스 코드는 다음 위치에 체크아웃됩니다: ~/builds/<namespace>/<project-name>
.
여기서:
-
<namespace>
는 GitLab에 저장된 프로젝트가 있는 네임스페이스입니다. -
<project-name>
은 GitLab에 저장된 프로젝트의 이름입니다.
~/builds
디렉터리를 덮어쓰려면 config.toml
의 [[runners]]
섹션 아래에 builds_dir
옵션을 지정하세요.
또는 GIT_CLONE_PATH
를 사용하여 작업 당 사용자 정의 빌드 디렉터리를 정의할 수도 있습니다.
새로운 기본 가상 머신 만들기
-
VirtualBox를 설치하세요.
- Windows에서 실행 중이고 VirtualBox가 기본 위치(예:
%PROGRAMFILES%\Oracle\VirtualBox
)에 설치된 경우 GitLab Runner가 자동으로 감지합니다. 그렇지 않으면gitlab-runner
프로세스의PATH
환경 변수에 설치 폴더를 추가해야 합니다.
- Windows에서 실행 중이고 VirtualBox가 기본 위치(예:
- VirtualBox에 가상 머신을 가져오거나 새로 만드세요.
- 네트워크 어댑터 1을 “NAT”로 구성하세요(현재 GitLab Runner가 게스트로 SSH로 연결할 수 있는 유일한 방법입니다).
- (선택 사항) 다른 네트워크 어댑터를 “Bridged 네트워킹”으로 구성하여 게스트에서 인터넷에 액세스하세요(예:).
- 새 가상 머신에 로그인하세요.
- Windows VM인 경우, Windows VM용 체크리스트를 참조하세요.
- OpenSSH 서버를 설치하세요.
- 빌드에 필요한 모든 다른 의존성을 설치하세요.
- 작업 아티팩트를 다운로드하거나 업로드하려면 VM 내에
gitlab-runner
를 설치하세요. - 로그아웃하고 가상 머신을 종료하세요.
가상 머신을 프로비저닝하는 등의 자동화 도구를 사용하는 것은 전혀 문제가 되지 않습니다.
새로운 러너 만들기
- VirtualBox를 실행하는 호스트에 GitLab Runner를 설치하세요.
-
gitlab-runner register
로 새 러너를 등록하세요. -
virtualbox
executor를 선택하세요. - 사용자가 이전에 만들었던 기본 가상 머신의 이름을 입력하세요 (가상 머신의 General > Basic > Name 설정에서 찾을 수 있음).
- 가상 머신의 SSH
user
와password
또는identity_file
경로를 입력하세요.
작동 방식
새로운 빌드가 시작되면:
- 가상 머신의 고유한 이름이 생성됩니다:
runner-<short-token>-concurrent-<id>
- 가상 머신이 존재하지 않으면 복제됩니다.
- SSH 서버에 액세스하기 위해 포트 포워딩 규칙이 생성됩니다.
- GitLab Runner가 가상 머신의 스냅샷을 시작하거나 복원합니다.
- GitLab Runner가 SSH 서버에 액세스할 때까지 기다립니다.
- GitLab Runner가 실행 중인 가상 머신의 스냅샷을 만듭니다(다음 빌드를 가속화하기 위해 수행됨).
- GitLab Runner가 가상 머신에 연결하고 빌드를 실행합니다.
- 활성화된 경우 작업 아티팩트는 가상 머신 내부의
gitlab-runner
를 사용하여 업로드됩니다. - GitLab Runner가 가상 머신을 중지하거나 종료합니다.
Windows VM용 체크리스트
Windows에서 VirtualBox를 사용하려면 Cygwin 또는 PowerShell를 설치할 수 있습니다.
Cygwin 사용
- Cygwin을 설치하세요.
- Cygwin에서
sshd
와 Git을 설치하세요(Git for Windows를 사용하지 마세요. 경로 문제가 많이 발생합니다!). - Git LFS를 설치하세요.
-
sshd
를 구성하고 서비스로 설정하세요(Cygwin 위키 참조). - Windows 방화벽에 들어오는 TCP 트래픽을 포트 22에서 허용하는 규칙을 만드세요.
- GitLab 서버를
~/.ssh/known_hosts
에 추가하세요. - Cygwin과 Windows 간의 경로 변환에는
cygpath
utility를 사용하세요.
Native OpenSSH와 PowerShell 사용
- GitLab Runner 14.6에서 소개되었습니다.
- PowerShell을 설치하세요.
- OpenSSH를 설치하고 구성하세요.
- Git for Windows를 설치하세요.
-
기본 셸을
pwsh
로 구성하세요. 올바른 전체 경로로 예제를 업데이트하세요:New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "$PSHOME\pwsh.exe" -PropertyType String -Force
-
config.toml
에 셸pwsh
를 추가하세요.