Contents
Ansible Automation Platform 2.3からOpenShift上にデプロイしたAAPと外部に構築した実行ノード(Execution Node)の連携がTech Previewとして出来るようになりました。
ここでは、OpenShift上にデプロイしたAAP Controllerと外部ホストで構築した実行ノードの連携をしてみます。
前提
ちなみに、OpenShift上にAAPをデプロイする時はAnsible Automation Platform Operatorをインストールすることで簡単にデプロイできます。
そのためここではインストール手順の省略およびデプロイ済み前提とします。
環境
項目 | バージョン |
---|---|
AAP Controller | 4.3.9 |
OpenShift | 4.12.13 |
補足
この記事を書いてるタイミング(2023/06/22 現在)でのOpenShift 4.13ではAAP Operatorは、まだインストールできないので注意してください。
実行ノードはESXi上にVMとして構築します。
動作確認が目的のためスペックは推奨より低く設定しています。
項目 | 内容 |
---|---|
CPU | 2 |
MEM | 8GB |
HDD | 100GB |
OS | RHEL 8.6 |
IP | 192.168.10.67 |
実行ノード作成
AAPにログインして実行ノードを作成
OpenShift上のAAPにログインします。
パスワードは secret
に登録されているので確認します。
以下はAAPの admin
ユーザーのパスワード確認方法の例になります。
1 2 3 |
[crc@homelab-1921681064 ~]$ oc get secret -n aap aap-admin-password -o jsonpath="{.data.password}" | base64 --decode ; echo dgTy1V2IiA1RgWMMDOBlMsfqlKgaAk3v |
AAPの管理画面からadminユーザーでログイン後に インスタンス
-> 追加
をクリックします。
ホスト名
に実行ノードの名前解決ができるホスト名またはIPアドレスを入力して 保存
をクリックします。
バンドルのインストール
から実行ノードセットアップ用のPlaybookなどがアーカイブされたファイルをダウンロードします。
ダウンロードしたアーカイブファイルを実行ノードにアップロードします。
以下は実行ノードにアップしたアーカイブになります。
1 2 3 |
[root@homelab-1921681067 ~]# ls 192.168.10.67_install_bundle.tar.gz |
実行ノードのセットアップ
実行ノードで以下のサブスクリプションを有効化します。
1 2 3 |
[root@homelab-1921681067 ~]# subscription-manager repos --enable ansible-automation-platform-2.3-for-rhel-8-x86_64-rpms リポジトリー 'ansible-automation-platform-2.3-for-rhel-8-x86_64-rpms' は、このシステムに対して有効になりました。 |
RHEL9の場合は ansible-automation-platform-2.3-for-rhel-9-x86_64-rpms
になります。
ansible-coreをインストールします。
1 2 |
[root@homelab-1921681067 ~]# dnf install -y ansible-core |
アップロードしたアーカイブを解凍します。
1 2 |
[root@homelab-1921681067 ~]# tar zxvf 192.168.10.67_install_bundle.tar.gz |
必要なコレクションをインストールします。
1 2 3 |
[root@homelab-1921681067 ~]# cd 192.168.10.67_install_bundle [root@homelab-1921681067 192.168.10.67_install_bundle]# ansible-galaxy install -r requirements.yml |
inventoryファイルを修正します。
1 2 3 4 5 |
[root@homelab-1921681067 192.168.10.67_install_bundle]# vi inventory.yml (snip) ansible_user: root # user provided <- root に変更 ansible_ssh_private_key_file: ~/.ssh/id_rsa |
Ansibleでの作業用のSSH Keyを作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[root@homelab-1921681067 192.168.10.67_install_bundle]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:IVB516fi1X8q+AnU9NT7R4cipGaHVFGHIT5Qpc3fJmQ root@homelab-1921681067 The key's randomart image is: (snip) [root@homelab-1921681067 192.168.10.67_install_bundle]# mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys |
実行ノードインストール用Playbookを実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root@homelab-1921681067 192.168.10.67_install_bundle]# ansible-playbook install_receptor.yml -i inventory.yml PLAY [all] ********************************************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ********************************************************************************************************************************************************************************************************************** The authenticity of host '192.168.10.67 (192.168.10.67)' can't be established. ECDSA key fingerprint is SHA256:fA2YGfurWwZEvQwIQWJ/LjXeBRiXjgLq6F5zzEbzpio. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes (snip) TASK [ansible.receptor.setup : Start Receptor service] ************************************************************************************************************************************************************************************** changed: [remote-execution] PLAY RECAP ********************************************************************************************************************************************************************************************************************************** remote-execution : ok=40 changed=19 unreachable=0 failed=0 skipped=1 rescued=0 ignored=0 |
firwalldでreceptorのポート番号を許可します。
1 2 3 4 5 |
[root@homelab-1921681067 192.168.10.67_install_bundle]# firewall-cmd --add-port=27199/tcp --permanent success [root@homelab-1921681067 192.168.10.67_install_bundle]# firewall-cmd --reload success |
実行ノードの動作確認
実行ノードの状態確認
AAPの画面に戻り作成したインスタンスの画面を開き 可用性チェックの実行
をクリックし 再読み込み
をクリックします。
準備
になっていることを確認します。
インスタンスグループの作成
インスタンスグループ
-> 追加
-> インスタンスグループの追加
をクリックします。
名前
を入力して 保存
をクリックします。
インスタンスグループにインスタンスを関連付ける
作成した インスタンスグループ
に対して インスタンス
を関連付けます。
インスタンス
-> 関連付け
をクリックします。
関連付けるインスタンスを選択して 保存
をクリックします。
関連付けられたことを確認します。
EE取得用の認証情報を追加
実行環境(EE)を実行ノードでダウンロードするための認証情報(レッドハットアカウント情報)を登録します。
認証情報
-> 追加
をクリックします。
名前
認証タイプ
認証 URL(registry.redhat.io)
ユーザー名
パスワード
を入力・選択して 保存
をクリックします。
実行環境
-> Default execution environment
を複製して作成した認証情報を登録します。
複製した情報をクリックします。
編集
をクリックします。
名前
レジストリーの認証情報
を設定して 保存
をクリックします。
インスタンスグループと実行環境を組織に紐付ける
追加した実行ノード上でEEが動かせるように作成したインスタンスグループと実行環境を組織に紐付けます。
ここでは Default
組織に紐付けます。
組織
-> Default
をクリックします。
編集
をクリックします。
インスタンスグループ
実行環境
を設定して 保存
をクリックします。
ジョブテンプレート実行
ここでは初期登録されている Demo Job Template
を実行してみたいと思います。
テンプレート
-> Demo Job Template
を実行します。
問題なく実行できることを確認します。
念のため実行ノードにEEのイメージが取得出来ているか確認してみましょう。
1 2 3 4 5 |
[root@homelab-1921681067 ~]# su - awx [awx@homelab-1921681067 ~]$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE registry.redhat.io/ansible-automation-platform-23/ee-supported-rhel8 <none> 36a5c93b87dd 13 days ago 1.68 GB |
最後に
実行ノードに関しては、まだTech Previewですが、このように試すことができます。
オートメーションメッシュについても今後機能が追加されていくと思います!楽しみですね〜 🙂
それでは Happy Automation! 🙂