「Automation Action」の Ansible センサーを有効化および設定する

「Automation Action」の Ansible センサーは、「自動化の管理」機能をサポートしています。

詳細については、 「自動化の管理」 を参照してください。 Instana エージェントをインストールすると、センサーが自動的に展開され、インストールされます。

このセンサーを使用すると、 Instana エージェントは、 Instana のアクションカタログにインポートされた Ansible アクションを実行できます。 このセンサーは、 Ansible のオートメーションコネクタを使用して、ジョブを実行する Ansible Automation Controller に接続します。

センサーを有効にする

「Automation Action」の Ansible センサーは、デフォルトでは無効になっています。 センサーを有効にするには、次の例に示すようにエージェントの設定ファイルを更新してください。

com.instana.plugin.action.ansible:
  enabled: true # by default is false
  url: <ansible_url> # Ansible Automation Controller url
  apiPath: <api_path> # Optional, default path is /api/v2. For Ansible Automation Controller 2.5+, use /api/controller/v2
  token: # the token to connect to Ansible Automation Controller
    configuration_from:
      type: vault
      secret_key:
        path: <secret_path>
        key: <secret_key>
 
注: 前の例に示すように、 `accessToken` のボールトを使用して、アクセストークンを保護してください。 プレーンテキストのトークンはセキュリティ上危険であるため、使用を避けてください。

以下の例は、コンフィギュレーションにおけるプレーン・テキスト・トークンの使用例を示すものであり、あくまで参考用である。

com.instana.plugin.action.ansible:
  enabled: true # by default is false
  url: <ansible_url> # Ansible Automation Controller url
  apiPath: <api_path> # Optional, default path is /api/v2. For Ansible Automation Controller 2.5+, use /api/controller/v2
  token: <ansbile_token> # the token to connect to Ansible Automation Controller
 

Ansible の同時実行可能なアクション数の変更

Ansible センサーは、デフォルトで 10 個の Ansible アクションを並行して実行できます。 並行 Ansible アクションの最大数を変更するには、以下の例に示すように、エージェント構成ファイル内の Ansible センサー構成に maxConcurrentActions 属性を追加します。

com.instana.plugin.action.ansible:
  enabled: true
  maxConcurrentActions: 5  # optional, default value is 10
 

デフォルトのタイムアウトを設定する

デフォルトでは、 Ansible アクションは300秒後にタイムアウトします。 Ansible アクションの実行におけるデフォルトのタイムアウトを変更したい場合は、エージェント設定ファイル内の Ansible センサー設定セクションに、次のように属 defaultTimeout 性を追加してください:

com.instana.plugin.action.ansible:
  enabled: true
  defaultTimeout: 30 # optional, default timeout is 300 seconds
 

Ansible オートメーションコネクタの設定

この手順は、 1.0.56 以前のバージョンを使用している場合のみ必要です。

「Automation Action」の Ansible センサーの以前のバージョンでは、 Ansible のオートメーションコネクタイメージが使用されています。 このセンサーを使用するには、 Instana エージェント上でコンテナ管理エンジン( Docker または Podman )が利用可能であることを確認してください。

センサーは、 Ansible 自動化コネクター・イメージを使用して Ansible 自動化コントローラーに接続し、そこでジョブを実行します。 センサーがアクティブ化されると、自動化コネクター・イメージが icr.io/instana/actions レジストリーからプルされます。

エージェント・マシンが icr.io イメージ・レジストリーにアクセスできない場合は、センサー構成で offline=true を設定し、エージェント・システム上の ローカル・レジストリーに自動化コネクター・イメージをロードします

自動化コネクターを構成するには、以下の例に示すようにエージェント構成ファイルを更新します。

com.instana.plugin.action.ansible:
  enabled: true
  url: <ansible_url>
  token:
    configuration_from:
      type: vault
      secret_key:
        path: <secret_path>
        key: <secret_key>
  connector:
    container_mgmt_engine: docker|podman # the container management engine
    host_port: 9080 # the port on the host to bind the connector container to
    ready_timeout: 60 # optional, default timeout is 300 seconds
    offline: false|true # optional, default is false
 

自動化コネクタの画像をローカルレジストリに読み込む

エージェント・マシンが icr.io イメージ・レジストリーにアクセスできない場合は、エージェント・システム上のローカル・イメージ・レジストリーにイメージをロードします。

エージェント・システム上のローカル・イメージ・レジストリーにイメージをロードするには、以下の手順を実行します。

  1. インターネットにアクセスできるマシンで、最新の Ansible 自動化コネクター・イメージをダウンロードします。

    docker pull icr.io/instana/actions/awx:latest
     
  2. イメージをアーカイブ・ファイルに保存します。

    docker save <image_id> > /tmp/awx.tar
     
  3. アーカイブをエージェント・マシンにコピーしてから、イメージをローカル・イメージ・レジストリーにロードします。

    docker load < /tmp/awx.tar
     
  4. 以下のように、イメージにタグを付けます。

    docker tag <image_id> icr.io/instana/actions/awx:latest
     

トラブルシューティング

「 Ansible 」センサーのオートメーションアクションを使用中に、次のような問題が発生する場合があります:

API Ansible Automation Controller ( 2.5 以降)のパス設定

接続の問題を解決するには、 Ansible Automation Controller 2.5 以降を使用する際、 API のパス設定を更新してください。

Ansible Automation Controller ( 2.5 以降)では、 API のパスが から /api/v2 に変更されました /api/controller/v2。 このセンサーは、以前のバージョンとの下位互換性を確保するため、デフォルトのパス /api/v2 として を使用しています。

接続に問題が発生した場合、または Ansible Automation Controller 2.5 以降からジョブテンプレートを取得できない場合は、エージェントの設定(instanaAgentDir/etc/instana/configuration.yaml)内のパラメータ apiPath を更新してください:

com.instana.plugin.action.ansible:
  enabled: true
  url: https://your-ansible-controller.example.com
  apiPath: /api/controller/v2  # Required for Ansible Automation Controller 2.5+
  token:
    configuration_from:
      type: vault
      secret_key:
        path: <secret_path>
        key: <secret_key>

API のパスが正しいか確認するには、次の curl コマンドを実行してください:

curl -k -H "Authorization: Bearer <your_token>" https://your-ansible-controller.example.com/api/controller/v2/job_templates/

curl コマンドが正常にジョブテンプレートを返した場合、 API のパスは正しいことになります。