たそ@ITインフラ初心者

taso@初心者エンジニア

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

AAP2.4 EDA(Event-Driven Ansible) Controller install on AWS

最初に

こんにちは たそ(@taso_int)です。 めちゃくちゃ暑いですね。封印していたエアコンを遂に解禁しました。(解禁するのは渋るけど解禁したら使いがち)
今日は最近リリースされたAnsible Automation Platformのバージョン2.4に含まれているEvent-Driven Ansible ControllerをAWS環境上でインストールしたいと思います。
今回のバージョンの目玉ぽい印象があります。連携周りに関しては次のブログで話せればと思います。

AAP2.4で追加された内容について

Event-Driven Ansibleの紹介をする前にAAP2.4の新機能を軽く確認したいと思います。 Red Hatの公式では以下のサイトで紹介をしています。

www.ansible.com

主な内容は以下です。英語苦手なので間違ってたら申し訳ないです。 Ansible LightspeedはAAPの一部ではないので、省略します。

  • Event-Driven Ansible 今日の内容
  • コレクションリポジトリ管理 アクセスの制御を細かく出来るようになったらしい
  • Validated contentの追加 いくつかの検証済みコンテンツがAutomation Hubに追加
  • Ansible Builder 3.0 EEを作成するツールのバージョンが上がって、ビルダーイメージが廃止されベースイメージが幅広く指定出来るようになった
  • ARMアーキテクチャでのプラットフォームインストールサポート Mac環境とかでもインストールしやすくなったらしい
  • UIの更新(プレビュー) 新規のUIがプレビューですが、確認できます。詳しくはhttps://www.youtube.com/watch?v=IBtGCQBkM0Aより

盛りだくさんですね。

Event-Driven Ansibleについて

イベント駆動型 Ansibleは、特定の事象が起こったときに、それに対応する行動を自動で行うシステムです。Ansible Rulebooksというルールを定義して、どのようなイベントでどうアクションするかを決めます。

イベントではEvent Source Pluginというものが提供されており、現在だとPartner's collections(Zabbizなど)とansible.eda Collection(Webhooksなど)があり、設定をする際に使用するを想定されています。

アクションには、既存の Ansible Playbook、テンプレート、またはモジュールの実行が含まれているとのことです。

今回リリースされたのは、Event-Driven Ansible Controllerになります。 Event-Driven Ansibleのインターフェイスで、イベントソースの連携や、Ansible Automation controllerの連携が可能になります。

Event-Driven Ansible Controller のインストール

公式情報

access.redhat.com

access.redhat.com

インストール資材

AWS環境

事前にインストーラー(ansible-automation-platform-setup-bundle-2.4-1-x86_64.tar.gz)を用意してインスタンス内に入れてください。ファイル容量が多いのでまあまあ時間かかります。

インストーラーの場所 https://access.redhat.com/downloads/content/480/ver=2.4/rhel---9/2.4/x86_64/product-software

恐らく、Event-Driven Ansible Controller単体だと何もできないので、別でAnsible Automation ControllerやAWX等は用意した方がいいと思います。 また両方を同時のホストにインストールするのは難しいと思います。試してはないです。

展開および移動

tar xvfz ansible-automation-platform-setup-bundle-2.4-1-x86_64.tar.gz
cd ansible-automation-platform-setup-bundle-2.4-1-x86_64

inventoryの追記

いつも通りinventoryの追記をしていきます。 追記箇所だけ表示します。

[automationedacontroller]
Host名 ansible_connection=local ansible_host=localhost

# Automation EDA Controller Configuration
#
required_ram=true #メモリ対策
automationedacontroller_admin_password='edaのパスワード'

automationedacontroller_pg_host=''
automationedacontroller_pg_port=5432

automationedacontroller_pg_database='automationedacontroller'
automationedacontroller_pg_username='automationedacontroller'
automationedacontroller_pg_password='パスワード'

# The full routeable URL used by EDA to connect to a controller host.
# in inventory.
#
automation_controller_main_url = 'Ansible Automation ContorllerのURL'

修正が完了したらsudo ./setup.shを実行します。 インストールは成功して画面は見れますが、ログイン時に400エラーになります。

理由としては以下の通りです

EDA Controllerがインストールする際に自動的にALLOWED_HOSTSを設定します。 これが、インストーラーがよしなにホストが所持しているIPをALLOWED_HOSTSに入れるのですが、EC2自体がグローバルIPを持たないので追加されません。そのため対策をする必要があります。

詳しくは、てくなべを確認してください。いつもお世話になっております。

tekunabe.hatenablog.jp

今回はグローバルIPを固定しないので、以下の操作をします。

  1. /etc/ansible-automation-platform/eda/environmentを開く。
  2. EDA_ALLOWED_HOSTS*を追加する。
  3. sudo systemctl restart automation-eda-controllerを実行します。

inventoryにautomationedacontroller_allowed_hostnames='*'を入れるとNginx周りでエラーが起きてインストールが出来なかったので断念しました。

ログインしてみる

ユーザーはadminでパスワードはautomationedacontroller_admin_passwordの値になります。

インストールは以上です。お疲れ様でした。

最後に

今回はAnsible Automation Platformのバージョン2.4に含まれているEvent-Driven Ansible Controllerをインストールする方法について書きました。
次回は連携をしてみて実際に動かしてみたいと思います。
ここまで読んでいただきありがとうございました。