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のチェックリスト
VirtualBoxをWindowsで使用するには、CygwinまたはPowerShellをインストールできます。
Cygwinを使用する
- Cygwinをインストールします
- Cygwinから
sshdとGitをインストールします(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を追加します