インストール
この記事では、Dockerを使用してLinuxにMacStadiumランナーをインストールする方法について説明します。MacStadiumランナーは、DockerHubで配布される最小限のDockerイメージとしてパッケージ化されています。
ステップ1:ダウンロード
Dockerをインストールし、パブリックイメージをプルします。
$ docker pull drone/drone-runner-macstadium
ステップ2:ネットワーキング
MacStadium APIでは、クラスターにアクセスするためにローカルで実行されているVPNが必要です。MacStadiumの公式ガイドに従って、ランナーと同じマシンにVPNをインストールして構成する必要があります。
ステップ3:画像
デフォルトのMacStadiumイメージにはgitクライアントがインストールされていません。仮想マシンを作成し、パイプラインに必要なgitクライアントとその他のソフトウェアをインストールする必要があります。仮想マシンをカスタムイメージとして保存します。インストールプロセスの一環として、ランナーにこのイメージの名前を提供する必要があります。
ステップ4:トークン
ランナーはMacStadium APIを使用して仮想マシンをプロビジョニングします。Orkaコマンドラインインターフェイスを使用して、MacStadiumアカウントにログインします。 Orka CLIは、APIトークンをホームディレクトリの構成ファイルに保存します。インストールプロセスの一環として、ランナーにトークンを提供する必要があります。
- Okra構成ファイルの内容を表示します。
$ cat ~/.config/configstore/orka-cli.json
- json構成ファイルからトークンを抽出します。
{
"api-url": "http://10.221.188.100",
"api-version": "1.1.0",
token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.Et9HFtf9R3GEMA0IICOfFMVXY7kkTX1wr4qCyhIf58U",
}
ステップ5:構成
ランナーは、環境変数を使用して構成されます。この記事では、以下の構成オプションについて説明します。構成オプションの完全なリストについては、構成を参照してください。
- DRONE_RPC_HOST
Droneサーバのホスト名(およびオプションのポート)を提供します。ランナーはホストアドレスでサーバに接続して、実行用のパイプラインを受信します。 - DRONE_RPC_PROTO
Droneサーバへの接続に使用されるプロトコルを提供します。値はhttpまたはhttpsのいずれかである必要があります。 - DRONE_RPC_SECRET
Droneサーバでの認証に使用される共有シークレットを提供します。これは、Droneサーバ構成で定義されているシークレットと一致する必要があります。 - DRONE_ORKA_ENDPOINT
MacStadium APIエンドポイントを提供します。デフォルト値はhttp://10.221.188.100です。 - DRONE_ORKA_TOKEN
MacStadium APIトークンを提供します。 - DRONE_VM_CPU
仮想マシンに割り当てられた仮想CPUのデフォルト数を提供します。デフォルト値は12仮想cpuです。 - DRONE_VM_IMAGE
デフォルトの仮想マシンイメージを提供します。 - DRONE_VM_USERNAME
仮想マシンイメージのユーザー名を提供します。デフォルト値はadminです。 - DRONE_VM_PASSWORD
仮想マシンイメージのパスワードを提供します。デフォルト値はadminです。
ステップ6:インストール
以下のコマンドは、コンテナを作成し、ランナーを開始します。以下の環境変数をDroneサーバの詳細に置き換えることを忘れないでください。
$ docker run -d \
-e DRONE_RPC_PROTO=https \
-e DRONE_RPC_HOST=drone.company.com \
-e DRONE_RPC_SECRET=super-duper-secret \
-e DRONE_ORKA_TOKEN=... \
-e DRONE_VM_IMAGE=... \
-p 3000:3000 \
--restart always \
--name runner \
drone/drone-runner-macstadium
ステップ7:検証
docker logs
コマンドを使用してログを表示し、ランナーがDroneサーバとの接続を正常に確立したことを確認します。
$ docker logs runner
INFO[0000] starting the server
INFO[0000] successfully pinged the remote server