第4章 Event-Driven Ansible と Red Hat Hybrid Cloud Console の統合
Event-Driven Ansible を使用すると、Red Hat Insights などの Hybrid Cloud Console のケイパビリティーを利用して、発生する可能性のある問題や推奨事項についてインベントリーを継続的に分析できます。Event-Driven Ansible は、イベントのソースをルール経由で対応するアクションに接続します。
Hybrid Cloud Console 通知サービスとのインテグレーションでは、Event-Driven Ansible を使用してアクションをトリガーします。各アカウントは、イベントの種類に応じてアクションを実行できる機能とともに、これらのイベントを誰がどのように受信できるかを設定します。
サポートへの問い合わせ
Hybrid Cloud Console と Event-Driven Ansible とのインテグレーションに問題がある場合は、Red Hat に連絡してサポートを依頼してください。Help (? アイコン)> Open a support case をクリックするか、? > Support options から他のオプションを表示し、Hybrid Cloud Console から直接 Red Hat サポートケースを開くことができます。
4.1. Red Hat Hybrid Cloud Console と統合するための Event-Driven Ansible の設定
Event-Driven Ansible を設定して、Red Hat Hybrid Cloud Console またはサードパーティーアプリケーションからイベント通知を受信できます。
前提条件
-
ansible-rulebook
CLI がインストールされている。手順は、Ansible ルールブックのインストール を参照してください。 - Hybrid Cloud Console の Organization Administrator または Notifications administrator の権限がある。
手順
環境を Red Hat Ansible Automation Hub に接続します。
- Hybrid Cloud Console で、Ansible Automation Platform > Connect to Hub に移動します。
- Offline token で、以下の文字列をコピーします。トークンは 30 日間使用しないと期限切れになります。トークンの有効期限が切れないように、以下のコマンドを定期的に実行してください。
- ターミナルウィンドウに、前の手順でコピーした文字列を貼り付けます。
Event-Driven Ansible の Red Hat Insights コレクションをインストールするには、以下のコマンドを入力します。
$ ansible-galaxy collection install redhat.insights_eda
Red Hat Insights の要件をインストールするには、
root
ユーザーとして次のコマンドを入力します。# pip3 install -r ~/.ansible/collections/ansible_collections/redhat/insights_eda/requirements.txt
次のコマンドを入力して、
redhat.insights_eda
が出力に含まれていることを確認します。$ ansible-galaxy collection list
このコマンドの出力例:
# /home/username/.ansible/collections/ansible_collections Collection Version ------------------ ------- ansible.eda 1.3.8 community.general 7.0.1 redhat.insights_eda 1.0.0
テキストエディターを使用して、Red Hat Insights コレクションを使用するシンプルな Ansible ルールブックを含む YAML ファイルを作成します。たとえば、次の内容を含む
simple-rulebook.yaml
というファイルを作成します。--- - name: Listen for events from Red Hat Insights hosts: all sources: - redhat.insights_eda.insights: rules: - name: Handle Red Hat Insights payload condition: event.payload is defined action: debug: msg: "Received: {{ event.payload }}"
このシンプルな Playbook は、
redhat.insights_eda.insights
コレクションをソースとして使用します。ペイロード
を持つイベントが定義されている場合、event.payload
の内容が出力として表示されます。ルールブックは、イベントを受信し、Hybrid Cloud Console と通信するために使用されるエンドポイントを公開します。Red Hat Insights アドバイザー、コンプライアンス、および脆弱性サービスの高度な例は、Ansible Automation Hub の Event-Driven Ansible for Red Hat Insights ドキュメントを参照してください。
関連する Playbook を含む YAML ファイルを作成します。たとえば、単純なインベントリーを含む
inventory.yaml
というファイルを作成します。all:
ansible-rulebook
コマンドを実行して、Event-Driven Ansible リスナーを起動し、新しいイベントをリッスンします。次の例では、このコマンドはデフォルトのポート 5000 でlocalhost
を公開します。$ ansible-rulebook --verbose --rulebook simple-rulebook.yml -i inventory.yml
別のターミナルウィンドウで
curl
コマンドを実行して、Event-Driven Ansible リスナーが正しく設定されていることを確認します。次に例を示します。$ curl -H 'Content-Type: application/json' -d "{\"payload\": \"Test incoming event\"}" localhost:5000/endpoint
この例では、設定が正しい場合、イベントの内容を含む新しいメッセージが EDA リスナーウィンドウに表示されます。
Received: {'payload': 'Test incoming event'}
- Hybrid Cloud Console で、Settings > Integrations に移動します。
- Reporting & Automation タブを選択します。
- Add integration をクリックします。
- Event-Driven Ansible をインテグレーションタイプとして選択し、次に Next をクリックします。
- Integration name フィールドに、統合の名前を入力します (例: My EDA Integration)。
Ansible ルールブックで設定した URL を Endpoint URL フィールドに入力します。これは、Event-Driven Ansible リスナーを指すエンドポイントです。
注記Endpoint URL には
http://
またはhttps://
を含める必要があります (例:https://<eda_hostname>:5000/endpoint
)。必要に応じて、組織のセキュリティー管理者に Red Hat Hybrid Cloud Console へのアクセスを設定するよう依頼してください。
オプション: シークレットトークン が設定されている場合は入力します。
注記Secret トークンは、インテグレーションエンドポイントに送信されるデータを保護するために必要であり、Hybrid Cloud Console をサードパーティーアプリケーションと統合するときは常に使用する必要があります。
- Next をクリックします。
- インテグレーションの詳細を確認し、Submit をクリックしてインテグレーションを有効にします。
Event-Driven Ansible インテグレーションが、Integrations > Reporting & Automation ページに表示されるようになりました。Last connection attempt のステータスが Ready になっている場合は、接続がコンソールからの通知を受け入れることができることを示しています。
検証
Event-Driven Ansible が Hybrid Cloud Console に正しく接続されていることを確認するためのテスト通知を作成します。
- Integrations > Reporting & Automation ページの Event-Driven Ansible インテグレーションの横にあるオプションアイコン (⋮) をクリックし、Test をクリックします。
- Integration Test 画面でメッセージを入力し、Send をクリックします。フィールドを空白のままにすると、Hybrid Cloud Console はデフォルトのメッセージを送信します。
- Event-Driven Ansible リスナーターミナルで、Hybrid Cloud Console から送信されたメッセージを確認します。
- Hybrid Cloud Console で、Notifications > Event Log に移動し、Integration: Event-Driven Ansible イベントが緑色のラベルでリストされていることを確認します。
関連情報
- Notifications administrator パーミッションの設定に関する詳細は、Red Hat Hybrid Cloud Console での通知の設定 の 通知を管理するためのユーザーアクセスの設定 を参照してください。
-
Event-Driven Ansible の設定情報や Red Hat Insights ルールブックの例の詳細は、Ansible Automation Hub Collections ページから入手できる
insights_eda
コレクションの Documentation タブを参照してください。