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

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を使用して、ジョブごとにカスタムビルドディレクトリを定義することもできます。

新しいベース仮想マシンを作成する

  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. virtualbox executorを選択します。
  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のチェックリスト

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を使用する