スタンドアロンのプライベートアクションランナーをセットアップする
概要
スタンドアロンのプライベートアクションランナーは、Docker または Helm を使用して Datadog Agent とは独立してインストールおよび管理できる専用コンテナです。これはサポートされており、メンテナンスモードになっています。セキュリティおよび安定性のアップデートは引き続き提供されますが、新機能の追加は予定されていません。新規デプロイの場合、および実行ポリシーを使用する場合は、代わりに Datadog Agent でランナーを実行してください。Datadog Agent でプライベートアクションランナーをセットアップする を参照してください。
ランナーのセットアップは 3 つのステップで行います。
- インストール: Docker、Docker Compose、または Kubernetes を使用してランナーをインストールします。
- 接続: コネクションを使用して、ランナーを Datadog に接続します。
- 更新: 新しいバージョンがリリースされたら、ランナーを更新します。
スタンドアロンランナーは常に所有されます。以下のいずれかの方法で作成すると、常に作成したユーザーの下に登録され、コネクション で認証されます。
前提条件
- Docker、または Kubernetes クラスター。
- Datadog へのネットワークアクセス (
https:// and https://config.)。
ランナーをインストールする
- Datadog で、Action Catalog > プライベートアクションランナー に移動し、新しいプライベートアクションランナーをクリックします。
- ランナーの名前を入力し、許可するアクションを選択します。
- ランナーが構成を保存できるディレクトリをホスト上に作成します (例:
./config)。 - コンテナプラットフォームの手順に従って、ランナーをデプロイします。
- Docker をクリックします。
./config をランナーの構成用に作成したディレクトリへのパスに置き換えて、ホスト上で提供された docker run コマンドを実行します。
注: エラー DATADOG TRACER DIAGNOSTIC - Agent Error: connect ECONNREFUSED は無視しても問題ありません。
- Docker Compose をクリックします。
docker-compose.yaml ファイルを作成し、指定 YAML を追加するか、既存の Docker Compose ファイルに runner スタンザを追加します。./config をランナー構成用に作成したディレクトリのパスに置き換えます。docker compose up -d を実行します。
注: エラー DATADOG TRACER DIAGNOSTIC - Agent Error: connect ECONNREFUSED は無視しても問題ありません。
- Kubernetes をクリックします。
kubectl と helm がインストールされていること、およびクラスター内に Kubernetes リソースを作成するための十分な権限があることを確認します。- アプリで提供される手順に従って、ランナーの登録、構成の生成、プライベートアクションランナー Helm リポジトリの追加、およびチャートのインストールを行います。
kubectl get pods -w を実行し、プライベートアクションランナーのポッドのステータスが Ready になることを確認します。
代替手段: プログラムによるインストール
上記の UI ベースのセットアップの代替として、API キーとアプリケーションキーを使用して、スタンドアロンランナーをプログラムで登録および構成できます。このアプローチは、自動化されたデプロイメント、CI/CD パイプライン、および Infrastructure as Code ワークフローに適しています。UI ベースのセットアップと同様、これは常に所有ランナーを作成します。--with-api-key フラグの名前にもかかわらず、このパスには依然としてアプリケーションキーが必要です。ランナーは両方の資格情報を組み合わせて使用し、自身を登録し、アプリケーションキーの所有者をランナーの Editor に割り当てます。
ランナーをプログラムでセットアップするには、以下の手順を実行します。
DD_API_KEY および DD_APP_KEY 環境変数を通じて Datadog API キーとアプリケーションキーを提供します。--with-api-key フラグをランナーコンテナに渡します。
export DD_API_KEY="<YOUR_API_KEY>"
export DD_APP_KEY="<YOUR_APP_KEY>"
docker run -d \
-e DD_BASE_URL=https://<span class="js-region-param region-param" data-region-param="dd_site"></span> \
-e DD_PRIVATE_RUNNER_CONFIG_DIR=/etc/dd-action-runner/config \
-e DD_API_KEY="$DD_API_KEY" \
-e DD_APP_KEY="$DD_APP_KEY" \
-e RUNNER_NAME=<YOUR_RUNNER_NAME> \
-v ./config:/etc/dd-action-runner/config \
gcr.io/datadoghq/private-action-runner:v1.21.0 \
--with-api-key
services:
private-runner:
image: gcr.io/datadoghq/private-action-runner:v1.21.0
command: ["--with-api-key"]
environment:
DD_API_KEY: ${DD_API_KEY}
DD_APP_KEY: ${DD_APP_KEY}
DD_BASE_URL: https://<span class="js-region-param region-param" data-region-param="dd_site"></span>
DD_PRIVATE_RUNNER_CONFIG_DIR: /etc/dd-action-runner/config
RUNNER_NAME: my-compose-runner
volumes:
- "./config:/etc/dd-action-runner/config"
以下で実行します。
export DD_API_KEY="<YOUR_API_KEY>"
export DD_APP_KEY="<YOUR_APP_KEY>"
docker compose up -d
ランナー構成を生成します。
export DD_API_KEY="<YOUR_API_KEY>"
export DD_APP_KEY="<YOUR_APP_KEY>"
docker run \
-e DD_BASE_URL=https://<span class="js-region-param region-param" data-region-param="dd_site"></span> \
-e DD_PRIVATE_RUNNER_CONFIG_DIR=/etc/dd-action-runner/config \
-e DD_API_KEY="$DD_API_KEY" \
-e DD_APP_KEY="$DD_APP_KEY" \
-e RUNNER_NAME="my-runner" \
-v ./config:/etc/dd-action-runner/config \
gcr.io/datadoghq/private-action-runner:v1.21.0 \
--with-api-key --enroll -f helm-values > values.yaml
Helm チャートをデプロイします。
helm upgrade --install <RELEASE_NAME> datadog/private-action-runner -f values.yaml
ランナーに Ready to use と表示されたら、コネクションを作成するか、またはプライベートアクションランナーページで確認してください。
カスタム CA 証明書
組織が HTTP エンドポイントや Jenkins などの内部サービス用の証明書を発行するためにカスタム認証局 (CA) を使用している場合、スタンドアロンのプライベートアクションランナーがその CA を信頼するように構成できます。
SSL_CERT_DIR環境変数を追加し、証明書を docker run コマンドにマウントし、その際、<PATH_TO_YOUR_CA_CERTIFICATE> を CA 証明書ファイルへのパスに置き換えてください。
docker run -d \
-e DD_BASE_URL=https://<span class="js-region-param region-param" data-region-param="dd_site"></span> \
-e DD_PRIVATE_RUNNER_CONFIG_DIR=/etc/dd-action-runner/config \
-e DD_API_KEY="$DD_API_KEY" \
-e DD_APP_KEY="$DD_APP_KEY" \
-e RUNNER_NAME=<YOUR_RUNNER_NAME> \
-e SSL_CERT_DIR=/etc/dd-action-runner/config/ca-certificates \
-v ./config:/etc/dd-action-runner/config \
-v <PATH_TO_YOUR_CA_CERTIFICATE>:/etc/dd-action-runner/config/ca-certificates/ca.crt \
gcr.io/datadoghq/private-action-runner:v1.21.0 \
--with-api-key
SSL_CERT_DIR環境変数を追加し、証明書を docker-compose.yaml ファイルにマウントし、その際、<PATH_TO_YOUR_CA_CERTIFICATE> を CA 証明書ファイルへのパスに置き換えてください。
services:
private-runner:
environment:
SSL_CERT_DIR: /etc/dd-action-runner/config/ca-certificates
volumes:
- "<PATH_TO_YOUR_CA_CERTIFICATE>:/etc/dd-action-runner/config/ca-certificates/ca.crt"
CA 証明書を含む ConfigMap を作成します。
kubectl create configmap my-ca-cert --from-file=ca.crt=./my-custom-ca.pem
Helm の values.yaml ファイルで、ConfigMap を参照します。
runner:
customCaCert:
configMapName: my-ca-cert
更新された値を適用します。
helm upgrade --install <RELEASE_NAME> datadog/private-action-runner -f values.yaml
ランナーを接続する
スタンドアロンランナーは常に所有されており、コネクション認証モデルを使用します。コネクションはサービスの認証情報を保存し、それらをランナーとペアリングします。コネクションを作成してランナーとペアリングするには、コネクション を参照してください。ランナー自体の権限の仕組みについては、所有ランナーへのアクセスを管理する を参照してください。
ランナーを管理する
コネクションを編集する、またはランナーを削除する
Action Catalog のプライベートアクションランナーページから、それぞれを使用するワークフローやアプリと一緒にすべてのプライベートランナーを表示できます。ランナーのコネクションを編集するには、詳細を表示をクリックしてください。ランナーを削除するには、ゴミ箱アイコンをクリックしてください。
許可リストを変更する
スタンドアロンランナーの許可リストを編集するには、ランナーの環境の config.yaml ファイルの actionsAllowlist セクションを編集し、その後、コンテナまたはデプロイメントを再起動してランナーを再起動してください。
ランナーを更新する
ランナーのインストール方法に一致するタブを選択してください。現在の v1.21.0 バージョンを使用し、ハードコードされたタグは使用しないでください。
コンテナの ID を確認します。
コンテナを停止します。
最新のイメージ を使用して新しいコンテナを起動します。環境変数は不要です。すべては config/config.yaml ファイルで構成されます。
docker run -d \
-e DD_PRIVATE_RUNNER_CONFIG_DIR=/etc/dd-action-runner/config \
-v ./config:/etc/dd-action-runner/config \
gcr.io/datadoghq/private-action-runner:v1.21.0
新しいバージョンが動作していることを確認したら、古いコンテナを削除してください。
docker-compose.yaml ファイルが含まれるディレクトリに移動し、イメージバージョンを更新します。
services:
private-actions-runner:
image: gcr.io/datadoghq/private-action-runner:v1.21.0
コンテナを再起動します。
Helm を使用したアップグレードには 2 つのオプションがあります。
- (推奨) チャートをアップグレードします。これにより、最新バージョンのランナーが使用されます。チャートに変更が加えられている可能性があるため、変更履歴 を確認します。
- チャートをアップグレードせずに、ランナーのみをアップグレードします。
チャートのアップグレード (推奨):
helm repo update
helm upgrade <RELEASE_NAME> datadog/private-action-runner -f ./values.yaml
ランナーのみのアップグレード:common.image.tag キーの下の values.yaml で、チャートの値ファイル から値を指定して、ランナーのバージョンを指定します。
common:
image:
tag: v1.21.0
次に、以下を実行します。
helm upgrade <RELEASE_NAME> datadog/private-action-runner -f ./values.yaml
参考資料