VirtualBox
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
Parallels executorは、VirtualBox executorと同じように動作します。ローカルキャッシュはサポートされていません。分散キャッシュがサポートされています。
VirtualBoxを使用すると、VirtualBoxの仮想化を使用して、すべてのビルドにクリーンなビルド環境を提供できます。このexecutorは、VirtualBoxで実行できるすべてのシステムをサポートします。唯一の要件は、仮想マシンがSSHサーバーを公開し、BashまたはPowerShellと互換性のあるシェルを提供することです。
GitLab RunnerがVirtualBox executorを使用するすべての仮想マシンで、一般的な前提条件を満たしていることを確認してください。
概要
プロジェクトのソースコードは、~/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のような自動化ツールを使用して、仮想マシンをプロビジョニングするのは完全に問題ありません。
新しいRunnerを作成する
- VirtualBoxを実行しているホストにGitLab Runnerをインストールします
gitlab-runner registerで新しいRunnerを登録しますvirtualboxexecutorを選択します- 以前に作成したベース仮想マシンの名前を入力します(仮想マシンの設定の一般 > Basic > 名前の下にあります)。
- 仮想マシンの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をインストールします
sshdとGitをCygwinからインストールします(Git for Windowsは使用しないでください。 パスの問題が発生します!)- Git LFSをインストールします
sshdを構成し、サービスとしてセットアップします(Cygwin Wikiを参照)。- ポート22で受信TCPトラフィックを許可するように、Windowsファイアウォールのルールを作成します
- 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 -Forceconfig.tomlにシェルpwshを追加します