| Works
AWXのインストール時に"docker-compose.yml"を生成する
お仕事でAnsibleを使っているけど、もっと有効活用したくてAWXに手を出しています。
AWXのインストール方法はインストールガイドの通りですが、"inventory"ファイルのパラメータを設定することで"docker-compose.yml"を生成することができます(デフォルトは無効)。
しかし、CentOS 7の環境でこのパラメータを有効にしたところインストールに失敗してしまい、成功するまで手間取りました。
その備忘録です。
エラーの内容
当初、AWXのインストールに必要となるパッケージ(ansibleやdocker等)は全てEPELレポジトリより"yum"でインストールしていました。
その上で"inventory"ファイルに"use_docker_compose=true"を設定してインストールを実行したところ、下記のエラーになりました。
設定に従って"/var/lib/awx/docker-compose.yml"ファイルは作成されましたが、これを使ってのコンテナ起動に失敗したようです。"docker-compose"はインストールしてあるのですが…。
これを解消するために"docker-compose"をアンインストールして"pip"で入れ直したりしましたが、やはり駄目でした。
そんなこんなで試行錯誤した結果、"ansible"も"pip"でインストールしたところうまくいきましたのでまとめです。
手順
CentOS 7.5を最小構成でインストールしたものから始めます。
まずは"yum"で必要なパッケージをインストール。
# yum -y install docker python-pip git
"pip"が使えるようになったら、お約束のアップグレードをしてから"ansible"と"docker-compose"をインストール。
# pip install ansible docker-compose
GitHubからAWXのレポジトリをクローンしてして、"inventory"ファイルの設定を変更。
(ここでは"use_docker_compose=true"のみ変更しているけど、必要に応じて他のパラメータも調整)
# cd ./awx/installer
# sed -i "s/# \(use_docker_compose\)\=.*$/\1\=true/g" ./inventory
Deckerサービスを起動
# systemctl start docker
AWXをインストール
以上です。
これで生成された"/var/lib/awx/docker-compose.yml"を使ってAWX関連コンテナの起動/停止を一括でできます。
複数のコンテナを連携させる環境だと"docker-compose"は個人的に手放せません。
なお、"pip"でインストールしたAnsibleは"yum"の場合と違って既定では"/etc/ansible/ansible.cfg"を読まないので注意する。バージョンも基本的に新しいはず。
# ansible --version
ansible 2.7.0
config file = None
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible
python version = 2.7.5 (default, Apr 11 2018, 07:36:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
### "yum"でインストールした場合 ###
# ansible --version
ansible 2.6.5
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible executable location = /usr/bin/ansible
python version = 2.7.5 (default, Apr 11 2018, 07:36:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
AWXもバージョンによっていろいろと不具合もあるし、仕事で使うならそれなりに覚悟は必要ですね。できれば将来的にAnsible Towerを導入したいけど、予算取れないだろうな~。
先日もこのバグに四苦八苦していました。
まあ、でも今の仕事ならせめてAnsibleは積極的に使っていきたい。