スタンドアロンのプライベートアクションランナーをセットアップする

概要

スタンドアロンのプライベートアクションランナーは、Docker または Helm を使用して Datadog Agent とは独立してインストールおよび管理できる専用コンテナです。これはサポートされており、メンテナンスモードになっています。セキュリティおよび安定性のアップデートは引き続き提供されますが、新機能の追加は予定されていません。新規デプロイの場合、および実行ポリシーを使用する場合は、代わりに Datadog Agent でランナーを実行してください。Datadog Agent でプライベートアクションランナーをセットアップする を参照してください。

ランナーのセットアップは 3 つのステップで行います。

  1. インストール: Docker、Docker Compose、または Kubernetes を使用してランナーをインストールします。
  2. 接続: コネクションを使用して、ランナーを Datadog に接続します。
  3. 更新: 新しいバージョンがリリースされたら、ランナーを更新します。

スタンドアロンランナーは常に所有されます。以下のいずれかの方法で作成すると、常に作成したユーザーの下に登録され、コネクション で認証されます。

前提条件

  • Docker、または Kubernetes クラスター。
  • Datadog へのネットワークアクセス (https:// and https://config.)。

ランナーをインストールする

  1. Datadog で、Action Catalog > プライベートアクションランナー に移動し、新しいプライベートアクションランナーをクリックします。
  2. ランナーの名前を入力し、許可するアクションを選択します。
  3. ランナーが構成を保存できるディレクトリをホスト上に作成します (例: ./config)。
  4. コンテナプラットフォームの手順に従って、ランナーをデプロイします。
  1. Docker をクリックします。
  2. ./config をランナーの構成用に作成したディレクトリへのパスに置き換えて、ホスト上で提供された docker run コマンドを実行します。

注: エラー DATADOG TRACER DIAGNOSTIC - Agent Error: connect ECONNREFUSED は無視しても問題ありません。

  1. Docker Compose をクリックします。
  2. docker-compose.yaml ファイルを作成し、指定 YAML を追加するか、既存の Docker Compose ファイルに runner スタンザを追加します。
  3. ./config をランナー構成用に作成したディレクトリのパスに置き換えます。
  4. docker compose up -d を実行します。

注: エラー DATADOG TRACER DIAGNOSTIC - Agent Error: connect ECONNREFUSED は無視しても問題ありません。

  1. Kubernetes をクリックします。
  2. kubectl と helm がインストールされていること、およびクラスター内に Kubernetes リソースを作成するための十分な権限があることを確認します。
  3. アプリで提供される手順に従って、ランナーの登録、構成の生成、プライベートアクションランナー Helm リポジトリの追加、およびチャートのインストールを行います。
  4. kubectl get pods -w を実行し、プライベートアクションランナーのポッドのステータスが Ready になることを確認します。

代替手段: プログラムによるインストール

上記の UI ベースのセットアップの代替として、API キーとアプリケーションキーを使用して、スタンドアロンランナーをプログラムで登録および構成できます。このアプローチは、自動化されたデプロイメント、CI/CD パイプライン、および Infrastructure as Code ワークフローに適しています。UI ベースのセットアップと同様、これは常に所有ランナーを作成します。--with-api-key フラグの名前にもかかわらず、このパスには依然としてアプリケーションキーが必要です。ランナーは両方の資格情報を組み合わせて使用し、自身を登録し、アプリケーションキーの所有者をランナーの Editor に割り当てます。

ランナーをプログラムでセットアップするには、以下の手順を実行します。

  1. DD_API_KEY および DD_APP_KEY 環境変数を通じて Datadog API キーとアプリケーションキーを提供します。
  2. --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"
  1. CA 証明書を含む ConfigMap を作成します。

    kubectl create configmap my-ca-cert --from-file=ca.crt=./my-custom-ca.pem
    
  2. Helm の values.yaml ファイルで、ConfigMap を参照します。

    runner:
      customCaCert:
        configMapName: my-ca-cert
    
  3. 更新された値を適用します。

    helm upgrade --install <RELEASE_NAME> datadog/private-action-runner -f values.yaml
    

ランナーを接続する

スタンドアロンランナーは常に所有されており、コネクション認証モデルを使用します。コネクションはサービスの認証情報を保存し、それらをランナーとペアリングします。コネクションを作成してランナーとペアリングするには、コネクション を参照してください。ランナー自体の権限の仕組みについては、所有ランナーへのアクセスを管理する を参照してください。

ランナーを管理する

コネクションを編集する、またはランナーを削除する

Action Catalog のプライベートアクションランナーページから、それぞれを使用するワークフローやアプリと一緒にすべてのプライベートランナーを表示できます。ランナーのコネクションを編集するには、詳細を表示をクリックしてください。ランナーを削除するには、ゴミ箱アイコンをクリックしてください。

許可リストを変更する

スタンドアロンランナーの許可リストを編集するには、ランナーの環境の config.yaml ファイルの actionsAllowlist セクションを編集し、その後、コンテナまたはデプロイメントを再起動してランナーを再起動してください。

ランナーを更新する

ランナーのインストール方法に一致するタブを選択してください。現在の v1.21.0 バージョンを使用し、ハードコードされたタグは使用しないでください。

コンテナの ID を確認します。

docker ps

コンテナを停止します。

docker stop <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 rm <id>

docker-compose.yaml ファイルが含まれるディレクトリに移動し、イメージバージョンを更新します。

services:
  private-actions-runner:
    image: gcr.io/datadoghq/private-action-runner:v1.21.0

コンテナを再起動します。

docker compose up -d

Helm を使用したアップグレードには 2 つのオプションがあります。

  1. (推奨) チャートをアップグレードします。これにより、最新バージョンのランナーが使用されます。チャートに変更が加えられている可能性があるため、変更履歴 を確認します。
  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

参考資料