AAP2.4 EDA(Event-Driven Ansible) Controllerを使ってみる。
最初に
こんにちは たそ(@taso_int)です。8月になりました。 今日は前回構築したEDA Controllerを実際に動かしていきたいと思います。 だいぶ遅くってすみません…(1ヶ月前かも…) 寝かせてたので情報古くてすみません。 ボツにするのも勿体ないので…
前回はこちら
単体で動かす
やることは以下の通りです。
- プロジェクトの作成(rulebookの用意)
- Decision Environmentsの指定
- rulebookのアクティベーション
また、EDAを動かす際必ず連携しているAnsible Automation ControllerやAWX等は用意しておきましょう。(起動はさせる) 簡潔に話すとDecision Environmentsが起動するとinstall時に登録したControllerにアクセスを試みようとします。 そこで接続が出来ないとDecision Environmentsが上手く動かない可能性が高いです。
環境
AWS環境
- OS: Red Hat Enterprise Linux release 9.2 (Plow)
- インスタンス: m5.large
- ストレージ: 10GB
- ネットワークセキュリティ いろいろと空けておく
プロジェクトの作成(rulebookの用意)
プロジェクトの作成をします。 これはrulebookが書かれているリポジトリを登録する必要があります。 ちなみにrulebookのドキュメントはこちらになります。
またrulebook書くのめんどくさい人向けにリポジトリを用意したので、適当に使ってください。 検証で使ってるのでいろいろとアップデートあるかもしれません。
今回はこのrulebook(rulr_hello)を動かします。
--- - name: Hello Events hosts: all sources: - ansible.eda.webhook: host: 0.0.0.0 port: 5005 rules: - name: Say Hello World condition: event.payload.message == "Hello" action: debug: msg: "Hello World"
イベント側ではがansible.eda.webhookモジュールを使って5005番portの受信を有効化しています。 一方、アクション側では、届いたペイロードのmessageがHelloの値であれば、Hello Worldを出力します。
プロジェクトからプロジェクトの作成で登録します。
Decision Environmentsの指定
Decision Environmentsは憶測にはなりますが、実際に動かすAnsible-rulebookのコンテナ環境のことだと思います。 イメージだとAnsible Automation ControllerのEEと似たような役割をしていると思います。
今回はインストール時に登録されているデフォルトのものを利用します。
恐らく、個別でコミュニティのedaコレクション等を使いたい場合は、Ansible builderでDecision Environmentsを作成する必要があると思います。
rulebookのアクティベーション
ルールブックのアクティベーションからルールブックの作成で作成します。
作成するとアクティベーションステータスが実行中になれば、動いている状態になります。
実際に動かす
Curlコマンドを使って実際にイベントを起こして、アクションをさせたいと思います。 以下のコマンドを入力します。(EDAのホストにちゃんとルーティングが出来る前提になります。)
curl -H 'Content-Type: application/json' -d "{\"message\": \"Hello\"}" IPアドレス:5005
問題なければルール監査に実行結果が表示されます。
また、ルールブックのアクティベーションから名前(今回はHello world)から履歴をクリックすると詳細で出力が見れます。
以上で単体での確認になります。
最後に
軽く触ってみました。
次は、Builderを使ってEDA用のイメージを作成が出来たらなと思います。