第8章 ルールブックアクティベーション
ルールブックは、イベント駆動型自動化モデルで IT アクションを実行するために Event-Driven Ansible が使用する条件付きルールのセットです。ルールブックは、どのソースでイベントをチェックするか、そのイベントが発生したときに特定の条件が満たされ場合に何を実行するかを、ユーザーが Event-Driven Ansible に指示する手段です。
ルールブックは、ルールがトリガーされたときに実行されるアクションを指定するものです。イベントがルールの条件に一致すると、ルールがトリガーされます。現在、次のアクションがサポートされています。
-
run_playbook
(ansible-rulebook CLI でのみサポート) -
run_module
-
run_job_template
-
run_workflow_template
-
set_fact
-
post_event
-
retract_fact
-
print_event
-
shutdown
-
debug
-
none
詳細を確認するには、アクション を参照してください。
ルールブックアクティベーションは、特定のルールブックを実行する決定環境によって定義されるバックグラウンドで実行されるプロセスです。ルールブックアクティベーションを設定するには、ルールブックアクティベーションの設定 に従ってください。
Red Hat は、1 つの postgres データベースでサポートされていないソースプラグインを使用することを推奨していません。これにより、Ansible Automation Platform を使用する際に潜在的なリスクが生じる可能性があります。
高可用性の要求を満たすために、Event-Driven Ansible Controller は、集中型の Redis (REmote DIctionary Server) を Ansible Automation Platform UI と共有します。Redis が利用できない場合は、次の機能が利用できなくなります。
-
is_enabled
が True の場合は、アクティベーションの作成 - アクティベーションの削除
- アクティベーションの有効化 (まだ有効になっていない場合)
- アクティベーションの無効化する (まだ無効になっていない場合)
- アクティベーションの再開
8.1. ルールブックアクティベーションの設定
前提条件
- Ansible Automation Platform ダッシュボードにコンテンツコンシューマーとしてログインしている。
- プロジェクトを設定している。
- 決定環境を設定している。
手順
- Ansible Automation Platform にログインします。
-
に移動します。 - をクリックします。
以下を入力します。
- Name
- 名前を入力します。
- Description
- このフィールドは任意です。
- Organization
- 組織名を入力するか、リストから Default を選択します。
- Project
- プロジェクトはルールブックの論理的なコレクションです。このフィールドは任意です。
- Rulebook
- 選択したプロジェクトに応じてルールブックが表示されます。
- Credential
このルールブックアクティベーションの認証情報を 0 個以上選択します。このフィールドは任意です。
注記- このフィールドに表示される認証情報は、ルールブックアクティベーションに基づいてカスタマイズされています。表示される認証情報のタイプは、Vault、Red Hat Ansible Automation Platform、または作成したカスタム認証情報タイプだけです。認証情報の詳細は、認証情報 を参照してください。
- Red Hat Ansible Automation Platform 認証情報を使用する場合は、ルールブックのアクティベーションに選択できる Red Hat Ansible Automation Platform 認証情報タイプは 1 つ だけです。
- 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 オプションをオンにします。
- をクリックします。
ルールブックアクティベーションが作成され、Rulebook Activations 画面で管理できるようになります。
新しいルールブックアクティベーションを保存すると、ルールブックアクティベーションの詳細ページが、Pending、Running、または Failed ステータスとともに表示されます。詳細ページまたは Rulebook Activations リストビューから、ルールブックアクティベーションを再開または削除できます。
ソースプラグインのシャットダウンが原因で、ルールブックが正常に終了するまでに一定の時間かかることがあります。ルールブックアクティベーションがシャットダウンすると、待機中のタスクがすべてキャンセルされ、アクティベーションのログに info レベルのメッセージが送信されます。詳細は、Rulebooks を参照してください。