サイオステクノロジーにてRed Hat製品のマーケティング・プリセールスを担当している村田です。
2023年5月23日〜25日に開催されたRed Hat Summit 2023において発表された新たな発表を数回にわけてまとめていきたいと思います。今回の4回目の記事は速報で書き起こしましたEvent-Driven Ansibleの内容を改めて書き直しましてお届けいたします。
#3にてご紹介した「Ansible Lightspeed」の登場で盛り上がりを受けた現地会場ですが、続けて発表されたものがこの「Event-Driven Ansible」となります。これはRed Hat Ansible Automation Platform 2.4での提供開始が予定されている新サービスになります。
これは昨年のAnsible Festにて開発者向けプレビューで展開されていたもので、Red Hat Ansible Automation Platform 2.4(AAP 2.4)より製品の一つして提供されます。
これまでもAPIを利用した連携で同じようなイベントをトリガーにAnsibleが動作してアクションを行うことはできましたが、ルールベースに駆動する形態をとることができます。
Event-Driven Ansibleの概要
Event-Driven Ansibleは、「OBSERVE(観測)→EVENT(イベント)」「EVALUATE(評価)→DECISION(判断)」「AUTOMATION(自動化)←RESPOND(応答)」の3項目から構成されます。
具体的には「ルール」を介してイベントのソースと対応するアクションを紐づけます。
Ansible Rulebooksはイベントのソース(情報源)を定義し、条件付きの「if-this-then-that」命令の形式でイベント発生時のアクションを指定します。
Sources:情報元、Rules:Event-Driven Ansibleを利用して製作するもの、Actions:条件が満たされた場合やイベント発生をトリガーにPlaybookを実行します。
Ansible Rulebooks
現地のプロジェクタに投影されていたスライドのため、少々見にくいところですが Ansible Rulebooksは下記のようにYAMLベースで記述されるため、Ansible Playbookを記述出来る方なら取り掛かりやすいところになると思います。
少々見にくいので下記にてコードで表してみます。この例では、alertmanager からイベントを受信するように Webhook を設定し、fastapiジョブ アラートのステータスがfiringであるイベントと照合します。これにより、問題を修正するプレイブックが実行されます。
---
- name: Automatic Remediation of a webserver
hosts: all
sources:
- name: listen for alerts
ansible.eda.alertmanager:
host: 0.0.0.0
port: 8000
rules:
- name: restart web server
condition: event.alert.labels.job == "fastapi" and event.alert.status == "firing"
action:
run_playbook:
name: ansible.eda.start_app
...
Event-Driven Ansible integrations and roadmap
このようなシンプルな形でEvent-Driven型の自動化が行なえますが、対応するモジュールは下記のとおりになります。今後増加が見込まれますが現状では対応するベンダーが少ないのでご利用の際には目的のモジュールが対応しているかの確認をお忘れなく。
Certified and validated content
The initial list of partners who are or will be certifying or validating content includes: Cisco ThousandEyes, CrowdStrike, CyberArk, Dynatrace, F5, IBM, Palo Alto Networks, and Zabbix and there are more to come. Red Hat has also developed key integrations including Apache Kafka, webhooks, Red Hat Insights, Red Hat OpenShift, Cisco NX-OS and Model-Driven Telemetry, AWS and more. Refer to the image below. More integrations are coming soon, including ServiceNow, Microsoft Azure, Google Cloud Platform and others.
引用:https://www.ansible.com/blog/event-driven-ansible-is-here
最後に、すでにEvent-Driven Ansibleの情報は公開されておりますのでいち早く評価してみたい、実際に触って理解したいというかたはぜひ下記のリンクも参考に頂きまして取り組んで頂けたらと思います。
参考情報
Ansible Rulebooks Documents
https://ansible-rulebook.readthedocs.io/en/stable/
Technical Blog
https://www.ansible.com/blog/topic/event-driven-automation