VirtualBox
캐싱 기능은 현재 지원되지 않습니다.
VirtualBox는 VirtualBox의 가상화를 사용하여
각 빌드에 대한 깨끗한 빌드 환경을 제공합니다.
이 실행자는 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로 연결할 수 있는 유일한 방법입니다). - (선택 사항) 다른 네트워크 어댑터를 “브리지 네트워킹”으로 구성하여
게스트에서 인터넷에 액세스합니다(예:). - 새 가상 머신에 로그인합니다.
- Windows VM인 경우, Windows VM 체크리스트를 참조하세요.
- OpenSSH 서버를 설치합니다.
- 빌드에 필요한 모든 다른 종속성을 설치합니다.
- 작업 아티팩트를 다운로드하거나 업로드하려는 경우,
VM 내부에gitlab-runner
를 설치합니다. - 로그아웃하고 가상 머신을 종료합니다.
자동화 도구인 Vagrant를 사용하여
가상 머신을 프로비저닝 하는 것도 완전히 괜찮습니다.
새로운 러너 생성
- VirtualBox를 실행하는 호스트에 GitLab Runner를 설치합니다.
-
gitlab-runner register
로 새 러너를 등록합니다. -
virtualbox
실행자를 선택합니다. - 이전에 생성한 기본 가상 머신의 이름을 입력합니다(가상 머신의
설정 일반 > 기본 > 이름에서 찾을 수 있습니다). - 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 방화벽에서 포트 22에 대한 수신 TCP 트래픽을 허용하는 규칙 생성
- GitLab 서버를
~/.ssh/known_hosts
에 추가 - Cygwin과 Windows 간의 경로를 변환하려면
cygpath
유틸리티를 사용하세요.
기본 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
- 셸
pwsh
를config.toml
추가