最初に
こんにちは たそ(@taso_int)です。
めちゃくちゃ暑いですね。封印していたエアコンを遂に解禁しました。(解禁するのは渋るけど解禁したら使いがち)
今日は最近リリースされたAnsible Automation Platformのバージョン2.4に含まれているEvent-Driven Ansible ControllerをAWS環境上でインストールしたいと思います。
今回のバージョンの目玉ぽい印象があります。連携周りに関しては次のブログで話せればと思います。
AAP2.4で追加された内容について
Event-Driven Ansibleの紹介をする前にAAP2.4の新機能を軽く確認したいと思います。 Red Hatの公式では以下のサイトで紹介をしています。
主な内容は以下です。英語苦手なので間違ってたら申し訳ないです。 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 のインストール
公式情報
インストール資材
AWS環境
- OS: Red Hat Enterprise Linux release 9.2 (Plow)
- インスタンス: m5.large
- ストレージ: 10GB
- ネットワークセキュリティ いろいろと空けておく
事前にインストーラー(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を持たないので追加されません。そのため対策をする必要があります。
詳しくは、てくなべを確認してください。いつもお世話になっております。
今回はグローバルIPを固定しないので、以下の操作をします。
/etc/ansible-automation-platform/eda/environment
を開く。EDA_ALLOWED_HOSTS
に*
を追加する。sudo systemctl restart automation-eda-controller
を実行します。
inventoryにautomationedacontroller_allowed_hostnames='*'
を入れるとNginx周りでエラーが起きてインストールが出来なかったので断念しました。
ログインしてみる
ユーザーはadmin
でパスワードはautomationedacontroller_admin_password
の値になります。
インストールは以上です。お疲れ様でした。
最後に
今回はAnsible Automation Platformのバージョン2.4に含まれているEvent-Driven Ansible Controllerをインストールする方法について書きました。
次回は連携をしてみて実際に動かしてみたいと思います。
ここまで読んでいただきありがとうございました。