Towerのドキュメントは
こちらに。
- local docker を利用している想定で話を進めていきます。
- 利用する awx のバージョンは 5.0.0 ベースです。
- 作成するvirtualenvは
/var/lib/awx/venv/test
で ansible 2.5.15 としています。
awx_web イメージの作成
適当なディレクトリ(/tmp/awx_web/
)に Dockerfileを用意します。
あらかじめ、必要なモジュールをrequirements.txt として用意できると楽ですが、そうでなくてもがんばれはします。
ベースイメージは、オフィシャルに用意されているansible/awx_web:5.0.0
を利用します。
FROM ansible/awx_web:5.0.0 USER 0 RUN yum -y install gcc python-devel && \ python2 -m pip install virtualenv && \ python2 -m virtualenv /var/lib/awx/venv/test/ && \ . /var/lib/awx/venv/test/bin/activate && \ pip install python-memcached psutil "ansible == 2.5.15" && \ yum -y remove gcc python-devel USER 1000
このファイルを元に
docker build /tmp/awx_web/ -t test/aws_web:5.0.0
とやって、 docker imageを作成します。
aws_task イメージの作成
適当なディレクトリ(/tmp/awx_task/
)に Dockerfileを用意します。
ベースイメージは先ほど作成した test/awx_web:5.0.0
を利用します。
FROM test/awx_web:5.0.0 USER 0 RUN sudo yum -y remove nginx USER 1000 EXPOSE 8052 CMD /usr/bin/launch_awx_task.sh
このファイルを元に
docker build /tmp/awx_task/ -t test/aws_task:5.0.0
とやって、 docker imageを作成します。
awxのインストールと実行
/tmp/awx
ディレクトリに awxをclone します。
git clone https://github.com/ansible/awx /tmp/awx
local docker 用のインストーラーのインベントリファイル(/tmp/awx/installer/inventory
)を編集します。
dockerhub_base=ansible
となっている箇所を dockerhub_base=test
と修正しましょう。 これは docker build -t test/awx_web:5.0.0 や docker build -t test/aws_task:5.0.0 とやったときの、 /より前のものです。今回は testとしましたね。 (通常は、docker hub の自分のアカウントを test の代わりに利用します。)
そして最後に
cd /tmp/awx/installer ansible-playbook -i inventory installer.yml
で docker-compose を利用して awxを立ち上げます。
起動したら、試しにサンプルjob template をみてみると、
このように、 どのvirtualenvで実行するか選べるようになりました。