6.6. ソースの置き換えとアクティベーションへのイベントストリームの割り当て
ルールブックアクティベーションを作成するときに、イベントストリームを使用して、ルールブックアクティベーション内のソースマッピングを交換し、外部ソースから Event-Driven Ansible Controller へのルーティングを簡素化できます。
ソースマッピングに関して留意すべき重要なポイントがいくつかあります。
- イベントストリームは、ルールブックソースの交換で 1 回だけ使用できます。ルールブックに複数のソースがある場合、各ソースを 1 回だけ置き換えることができます。
- ソースマッピングは、現在のルールブックアクティベーションでのみ実行されます。同じルールブックを使用する他のアクティベーションがある場合は、そのアクティベーションに対してこのプロセスを繰り返す必要があります。
- ソースマッピングは、ルールブックが変更されない場合に限り有効です。ソースマッピングプロセス中にルールブックが変更されると、ソースマッピングが失敗し、プロセスをやり直す必要があります。
- ソースマッピングの作成後にルールブックが変更され、再起動 が発生すると、ルールブックアクティベーションが失敗します。
手順
- Ansible Automation Platform にログインします。
-
ナビゲーションパネルから、
を選択します。 - をクリックします。
以下を入力します。
- Name
- 名前を入力します。
- Description
- このフィールドは任意です。
- Organization
- 組織名を入力するか、リストから Default を選択します。
- Project
プロジェクトはルールブックの論理的なコレクションです。このフィールドは任意です。
注記このフィールドは任意ですが、プロジェクトを選択すると、ルールブックの選択肢のリストを絞り込むのに役立ちます。
- Rulebook
選択したプロジェクトに応じてルールブックが表示されます。ルールブックを選択します。
注記ルールブックを選択すると、Event streams フィールドが有効になります。歯車アイコンをクリックすると、イベントストリームマッピングのフォームが表示されます。
- Event streams
イベントをルールブックアクティベーションに転送するように設定されている利用可能なイベントストリームがすべて表示されます。イベントストリームを作成していない場合、このフィールドは無効のままです。
歯車アイコンをクリックすると、イベントストリームマッピングの UI が表示されます。
以下のフィールドに入力します。
- Rulebook source
ルールブックには、複数のルールセットにわたる複数のソースを含めることができます。複数のアクティベーションで、同じルールブックを複数のイベントストリームにマッピングできます。イベントストリームを管理する際、名前のないソースに、識別のために一時的な名前 (__SOURCE {n}) が割り当てられます。
リストから __SOURCE_1 を選択します。
- Event stream
リストからイベントストリーム名を選択します。
イベントストリームは、ルールブック内の一致するソースを置き換えることができます。イベントストリームは、さまざまなイベントソースをルールブックアクティベーションに接続できるようにするサーバー側の Webhook です。ansible.eda.pg_listener タイプのイベントストリームのソースに置き換えることができるソースタイプとしては、ansible.eda.webhook やその他の互換性のある Webhook ソースプラグインなどがあります。選択したソースを置き換えると、このアクティベーションにのみ影響が発生し、ルールブックのソースタイプ、ソース名、および引数が変更されます。フィルター、ルール、条件、アクションは、いずれも影響を受けません。
1 つのイベントストリームで置き換えるソースを選択できます。ルールブックに複数のソースがある場合は、各ソースをイベントストリームで置き換えることもできますが、各ソースを置き換える必要はありません。次の画像は、置き換えることができるソースを示しています。
ピンク色の項目は、置き換え可能なソース (ソースタイプ、ソース名、引数) を示しています。残りの項目 (フィルター、ルール、アクション) は置き換えられません。
- Credential
このルールブックアクティベーションの認証情報を 0 個以上選択します。このフィールドは任意です。
注記このフィールドに表示される認証情報は、ルールブックアクティベーションに基づいてカスタマイズされています。表示される認証情報のタイプは、Vault、Red Hat Ansible Automation Platform、または作成したカスタム認証情報タイプだけです。認証情報の詳細は、認証情報 を参照してください。
- Decision environment
決定環境は、Ansible ルールブックを実行するために使用するコンテナーイメージです。
注記Event-Driven Ansible Controller では、決定環境のプルポリシーをカスタマイズすることはできません。デフォルトでは、always ポリシーの動作に従います。アクティベーションが開始されるたびに、システムはイメージの最新バージョンを取得しようとします。
- Restart policy
これは、ソースプラグインを実行しているコンテナープロセスが終了した後にアクティベーションを再開する方法を決定するポリシーです。
Policies:
- Always: ルールブックアクティベーションが正常に終了したかどうかに関係なく、ルールブックアクティベーションを直ちに再開します。これは 5 回まで実行されます。
- Never: コンテナープロセスが終了したときに、ルールブックアクティベーションを再開しません。
- On failure: コンテナープロセスが失敗した場合にのみ、デフォルトで 60 秒後にルールブックアクティベーションを再開します。これは 5 回まで実行されます。
- Log level
このフィールドでは、ログに記録するイベントの重大度とコンテンツのタイプを定義します。
Levels:
- Error: アクティベーションの History タブに表示されるエラーメッセージを含むログ。
- Info: 成功または失敗、トリガーされたアクション名と関連するアクションイベント、エラーなど、ルールブックアクティベーションに関する有用な情報を含むログ。
- Debug: デバッグフェーズでのみ役立ち、運用時にはあまり有用でない可能性がある情報を含むログ。このログレベルでは、エラーデータとログレベルデータの両方が対象となります。
- Service name
- これは、アクティベーションによりポートが公開される場合に、Kubernetes が受信接続を設定するためのサービス名を定義します。このフィールドは任意です。
- Rulebook activation enabled?
- これを選択すると、ルールブックアクティベーションが自動的に有効になります。
- Variables
-
ルールブックの変数は JSON または YAML 形式です。内容は、ansible-rulebook コマンドの
--vars
フラグによって渡されるファイルと同等です。 - Options
- ルール監査にイベントを表示しない場合は、Skip audit events オプションをオンにします。
ルールブックアクティベーションを作成すると、Details ページが表示されます。
Event streams ページに移動すると、イベントが受信されたことを確認できます。