正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

VirtualBox

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

Parallels executorは、VirtualBox executorと同じように機能します。ローカルキャッシュはサポートされていません。分散キャッシュはサポートされています。

VirtualBoxを使用すると、VirtualBoxの仮想化を使用して、すべてのビルドにクリーンなビルド環境を提供できます。このexecutorは、VirtualBoxで実行できるすべてのシステムをサポートします。唯一必要なのは、仮想マシンがSSHサーバーを公開しており、BashまたはPowerShellと互換性のあるシェルを提供していることだけです。

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. (オプション)別のネットワークアダプターを「ブリッジネットワーキング」として構成して、(たとえば)ゲストからインターネットにアクセスできるようにします。
  5. 新しい仮想マシンにログインします。
  6. Windows VMの場合は、Windows VMのチェックリストを参照してください。
  7. OpenSSHサーバーをインストールします。
  8. ビルドに必要な他のすべての依存関係をインストールします。
  9. ジョブアーティファクトをダウンロードまたはアップロードする場合は、VM内にgitlab-runnerをインストールします。
  10. ログアウトして、仮想マシンをシャットダウンします。

仮想マシンのプロビジョニングには、Vagrantのような自動化ツールを使用してもまったく問題ありません。

新しいRunnerを作成する

  1. VirtualBoxを実行しているホストにGitLab Runnerをインストールします。
  2. gitlab-runner registerで新しいRunnerを登録します。
  3. virtualboxexecutorを選択します。
  4. 以前に作成したベース仮想マシンの名前を入力します(仮想マシンの設定の一般 > Basic > 名前の下にあります)。
  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をインストールします。
  • sshdとGitはCygwinからインストールしてください(Git for Windowsは使用しないでください。パスに関する問題が多発します)。
  • Git LFSをインストールします。
  • sshdを構成し、サービスとしてセットアップします(Cygwin Wikiを参照)。
  • ポート22で受信TCPトラフィックを許可するように、Windowsファイアウォールのルールを作成します。
  • GitLabサーバーを~/.ssh/known_hostsに追加します。
  • CygwinとWindows間でパスを変換するには、cygpathユーティリティを使用します。

ネイティブOpenSSHとPowerShellの使用