たそ@ITインフラ初心者

taso@初心者エンジニア

新卒2年目 エンジニアが適当に語るブログてす

AAP 2.4 EDA(Event-Driven Ansible) Controller を使う

AAP2.4 EDA(Event-Driven Ansible) Controllerを使ってみる。

最初に

こんにちは たそ(@taso_int)です。8月になりました。 今日は前回構築したEDA Controllerを実際に動かしていきたいと思います。 だいぶ遅くってすみません…(1ヶ月前かも…) 寝かせてたので情報古くてすみません。 ボツにするのも勿体ないので…

前回はこちら

taso-int.hatenablog.com

単体で動かす

やることは以下の通りです。

また、EDAを動かす際必ず連携しているAnsible Automation ControllerやAWX等は用意しておきましょう。(起動はさせる) 簡潔に話すとDecision Environmentsが起動するとinstall時に登録したControllerにアクセスを試みようとします。 そこで接続が出来ないとDecision Environmentsが上手く動かない可能性が高いです。

環境

AWS環境

プロジェクトの作成(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用のイメージを作成が出来たらなと思います。