VirtualBox

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed
note
The Parallels executor works the same as the VirtualBox executor. The caching feature is currently not supported.

VirtualBox는 각 빌드를 위한 깨끗한 빌드 환경을 제공하기 위해 VirtualBox의 가상화를 사용할 수 있습니다. 이 executor는 VirtualBox에서 실행할 수 있는 모든 시스템을 지원합니다. 가상 머신은 SSH 서버를 노출하고 Bash 또는 PowerShell과 호환되는 쉘을 제공하는 유일한 요구 사항입니다.

note
GitLab Runner가 VirtualBox executor를 사용하는 가상 머신에서 공통 사전 준비 조건을 충족하는지 확인하십시오.

개요

프로젝트의 소스 코드는 다음 위치에 확인됩니다: ~/builds/<namespace>/<project-name>.

여기서:

  • <namespace>는 GitLab에 저장된 프로젝트가 저장된 네임스페이스입니다.
  • <project-name>은 GitLab에 저장된 프로젝트의 이름입니다.

~/builds 디렉터리를 재정의하려면 config.toml[[runners]] 섹션 아래에 builds_dir 옵션을 지정하십시오.

또한 GIT_CLONE_PATH를 사용하여 작업당 사용자 정의 빌드 디렉터리를 정의할 수 있습니다.

새 기본 가상 머신 만들기

  1. VirtualBox를 설치합니다.
    • Windows에서 실행 중이고 VirtualBox가 기본 위치(예: %PROGRAMFILES%\Oracle\VirtualBox)에 설치된 경우, GitLab Runner가 자동으로 감지합니다. 그렇지 않으면 gitlab-runner 프로세스의 PATH 환경 변수에 설치 폴더를 추가해야 합니다.
  2. VirtualBox에 가상 머신을 가져오거나 새로 만듭니다
  3. 네트워크 어댑터 1을 “NAT”으로 구성합니다 (현재 GitLab Runner가 게스트로 SSH를 통해 연결하는 유일한 방법입니다)
  4. (선택 사항) 다른 네트워크 어댑터를 “Bridged networking”으로 구성하여 게스트에서 인터넷에 액세스합니다.
  5. 새 가상 머신에 로그인합니다
  6. Windows VM의 경우, Windows VM용 체크리스트를 참조하십시오.
  7. OpenSSH 서버를 설치합니다
  8. 빌드에 필요한 모든 기타 의존성을 설치합니다.
  9. 작업 자산을 다운로드하거나 업로드하려면 gitlab-runner를 가상 머신 내부에 설치합니다.
  10. 로그 아웃하고 가상 머신을 종료합니다

가상 머신을 프로비저닝하는 등의 자동화 도구를 사용하는 것은 전혀 문제가 되지 않습니다.

새 Runner 만들기

  1. VirtualBox에서 실행 중인 호스트에 GitLab Runner를 설치합니다
  2. gitlab-runner register로 새 Runner를 등록합니다
  3. virtualbox executor를 선택합니다
  4. 이전에 만든 기본 가상 머신의 이름을 입력합니다 (가상 머신 General > Basic > Name 설정에서 찾을 수 있음)
  5. 가상 머신의 SSH userpassword 또는 identity_file 경로를 입력합니다

작동 방식

새 빌드가 시작되면:

  1. 가상 머신의 고유한 이름이 생성됩니다: runner-<short-token>-concurrent-<id>
  2. 가상 머신이 없는 경우 복제됩니다.
  3. SSH 서버에 액세스하기 위해 포트 포워딩 규칙을 만듭니다.
  4. GitLab Runner가 가상 머신의 스냅숏을 시작하거나 복원합니다.
  5. GitLab Runner가 SSH 서버에 액세스 가능해질 때까지 기다립니다.
  6. GitLab Runner가 실행 중인 가상 머신의 스냅숏을 만듭니다 (이를 통해 다음 빌드가 더 빨리 진행됩니다).
  7. GitLab Runner가 가상 머신에 연결하여 빌드를 실행합니다.
  8. 활성화된 경우 작업 자산 업로드는 가상 머신 내부에서 gitlab-runner 이진 파일을 사용하여 수행됩니다.
  9. 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 사용

  • PowerShell을 설치합니다
  • OpenSSH를 설치하고 구성합니다
  • Git for Windows를 설치합니다
  • 기본 셸을 pwsh로 구성합니다. 올바른 전체 경로로 예제를 업데이트하십시오:

    New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "$PSHOME\pwsh.exe" -PropertyType String -Force
    
  • config.toml에 셸 pwsh를 추가합니다