Ansible Tower 3.8をインストールする
Ansibleもくもく会で「Ansible Tower便利だなー」となったのでRed Hat Developer Programを活用してインストールし、遊んでみます。
商用利用や商用検証などには制約があるので、その場合はライセンスを買うかAWXコミュニティに参加してください。
また、本内容は下記ブログを参考にしています。 zaki-hmkc.hatenablog.com
導入前準備
RHELサーバを構築します。 システム要件は下記を参考にしてください。
内容を見ると2Core CPU / 4GB RAM / 20GB DiskSpaceを持つRHELまたはCentOSサーバがあると良いようです。 ただし、AutomationHubのRAM要求が4GBでは足りないようで、インストールで怒られるようです。 (Automation HubのRequireってどこに書いてあるんでしょう?)
適当に4Core / 8GB / 100GBのVMにRHEL8.3をインストールしましたが、ご家庭で触る限りには快適に使えています。
インストーラの入手
Developer Programに参加後、下記URLからインストーラをダウンロードします。 今回はPlatform 1.2を使いました。
Red HatのCDNからダウンロードしてくるようですが、1回数kb/sしか落ちない悲しい時がありました。そんな時はキャンセルして再ダウンロードをするとすぐ落ちてきたのでご参考まで。
インストール設定
ファイルを展開し、Inventoryファイルに設定を投入します。 tar.gzだけど無圧縮トラップ…は回避して
$ file ansible-automation-platform-setup-bundle-1.2.0-1.tar.gz ansible-automation-platform-setup-bundle-1.2.0-1.tar.gz: POSIX tar archive (GNU) $ tar xf ansible-automation-platform-setup-bundle-1.2.0-1.tar.gz -bash: tar: コマンドが見つかりません
…最小インストールしてたのでtarがなかったようです。
# dnf install tar
気を取り直して展開し、フォルダの中にあるinventoryファイルを編集します。
$ tar xf ansible-automation-platform-setup-bundle-1.2.0-1.tar.gz $ cd ansible-automation-platform-setup-bundle-1.2.0-1 $ ls README.md backup.yml bundle collections group_vars install.yml inventory licenses rekey.yml restore.yml roles setup.sh
シングルホストであれば設定すべき箇所は、下記4か所「ここ」のパスワード設定です。
[all:vars] admin_password='ここ' pg_host='' pg_port='' pg_database='awx' pg_username='awx' pg_password='ここ' pg_sslmode='prefer' # set to 'verify-full' for client-side enforced SSL # Automation Hub Configuration # automationhub_admin_password='ここ' automationhub_pg_host='' automationhub_pg_port='' automationhub_pg_database='automationhub' automationhub_pg_username='automationhub' automationhub_pg_password='ここ' automationhub_pg_sslmode='prefer'
アプリケーション(Tower/AutomationHub)のadminパスワードと、それぞれのDBのパスワードです。
インストール
setupを実行するとインストールが始まります。最初にAnsibleをインストールし、その後Playbookによって導入するようです。
failed=0
で成功と表示されたらインストール完了です。
# ./setup.sh [warn] Will install bundled Ansible Updating Subscription Management repositories. (略) PLAY RECAP ******* localhost : ok=191 changed=79 unreachable=0 failed=0 skipped=86 rescued=0 ignored=2 The setup process completed successfully. Setup log saved to /var/log/tower/setup-2021-04-18-14:43:11.log.
PostgreSQLの起動に失敗する
Playbookの実行が下記箇所でエラーになり止まることがあります。
TASK [restart postgresql when authentication settings changed] ************** fatal: [localhost]: FAILED! => {"changed": false, "msg": "Unable to restart service postgresql: Job for postgresql.service failed because the control process exited with error code.\nSee \"systemctl status postgresql.service\" and \"journalctl -xe\" for details.\n"}
ログを見ると、postgresql.confに記述されたen_US.UTF-8
に不備があるらしく、どうやら日本語でインストールされたRHELには該当のlocaleが含まれていないため起動できないようです。
-- Unit postgresql.service has begun starting up. 4月 18 14:38:32 rhel8-test postmaster[10159]: < 2021-04-18 05:38:32.769 UTC >LOG: パラメータ"lc_messages"の値が不正です: "en_US.UTF-8" 4月 18 14:38:32 rhel8-test postmaster[10159]: < 2021-04-18 05:38:32.769 UTC >LOG: パラメータ"lc_monetary"の値が不正です: "en_US.UTF-8" 4月 18 14:38:32 rhel8-test postmaster[10159]: < 2021-04-18 05:38:32.769 UTC >LOG: パラメータ"lc_numeric"の値が不正です: "en_US.UTF-8" 4月 18 14:38:32 rhel8-test postmaster[10159]: < 2021-04-18 05:38:32.769 UTC >LOG: パラメータ"lc_time"の値が不正です: "en_US.UTF-8" 4月 18 14:38:32 rhel8-test postmaster[10159]: < 2021-04-18 05:38:32.769 UTC >FATAL: 設定ファイル"/var/lib/pgsql/data/postgresql.conf"にはエラーがあります 4月 18 14:38:32 rhel8-test systemd[1]: postgresql.service: Main process exited, code=exited, status=1/FAILURE 4月 18 14:38:32 rhel8-test systemd[1]: postgresql.service: Failed with result 'exit-code'. -- Subject: Unit failed
# locale -a C C.utf8 POSIX ja_JP.eucjp ja_JP.utf8
該当のconfはroles/postgres/templates/postgresql.conf.j2
にありますので、該当箇所を導入されている日本語を使うように書き換えてもよいのですが、個人的にはログは英語で出てきてほしいので、下記の通り言語パックを導入します。
# dnf install glibc-langpack-en # locale -a (略) en_US en_US.iso885915 en_US.utf8 (略) ja_JP.eucjp ja_JP.utf8
導入後は再度セットアップを実行すれば大丈夫です。
ログイン & ライセンス認証
ブラウザでHTTPSアクセスし、inventoryに設定したパスワードでadminユーザにログイン、その後DeveloperProgramのアカウントでライセンス認証をしたらセットアップ完了です。
お疲れさまでした!