CentOS 7でAnsible AWXの環境を構築(Docker版)
概要
興味が湧いたのでAnsible AWX触りたいと思って、環境構築やってみました。
CentOS 7でやってると依存関係とか諸々でしんどかったので手順を残しておきます。
目次
参考サイト様
前提
実行環境はWindows 10のVMware WorkStationでCentOS 7
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core)
手順
Ansible AWXのInstall Guideに従ってインストールを実行します。
必要パッケージのインストール
下記のガイドに記載の必要なパッケージを順にインストールする。
# とりあえずパッケージアップデート [root@localhost ~]# yum update -y # epel releaseリポジトリを追加 [root@localhost ~]# yum -y install epel-release # 必要なパッケージをインストール [root@localhost ~]# yum install -y ansible python3 docker-compose yum-utils libselinux-python3
Dockerについては、Dockerの公式ドキュメントに記載の方法でインストールする。
# 最新版Dockerをインストール [root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo [root@localhost ~]# yum install -y docker-ce docker-ce-cli containerd.io
# 最新版gitをインストール [root@localhost ~]# yum install -y https://repo.ius.io/ius-release-el7.rpm [root@localhost ~]# yum provides git 読み込んだプラグイン:fastestmirror ### 省略 git224-2.24.2-1.el7.ius.x86_64 : Fast Version Control System リポジトリー : ius 一致 : Provides : git = 2.24.2-1.el7.ius [root@localhost ~]# yum install -y git224-2.24.2-1.el7.ius.x86_64
インストール確認
# ansible [root@localhost ~]# ansible --version ansible 2.9.9 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 2 2020, 13:16:51) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
# python [root@localhost ~]# python3 -V Python 3.6.8
# docker [root@localhost ~]# docker --version Docker version 19.03.10, build 9424aeaee9 [root@localhost ~]# docker-compose --version docker-compose version 1.18.0, build 8dd22a9
# git [root@localhost ~]# git --version git version 2.24.2
Docker Engineの起動
# 状態確認 [root@localhost ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: inactive (dead) Docs: https://docs.docker.com # Docker Engine起動 [root@localhost ~]# systemctl start docker # OS起動時に起動するよう設定 [root@localhost ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. # 再度状態確認 [root@localhost ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since 日 2020-05-31 16:34:03 JST; 7s ago Docs: https://docs.docker.com Main PID: 22567 (dockerd) CGroup: /system.slice/docker.service mq22567 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ### 省略
Ansible AWXのインストール
Docker-composeの手順に従って実行する。
# リリースタグを指定してClone [root@localhost ~]# git clone https://github.com/ansible/awx.git -b 11.2.0 --depth 1 # インストールプレイブックを実行 [root@localhost ~]# cd awx/installer/ [root@localhost installer]# ansible-playbook -i inventory install.yml
コンテナ起動確認
Playbook実行完了後、コンテナの起動確認を実施する。
[root@localhost installer]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ca4fc3d6faa8 ansible/awx_task:11.2.0 "tini -- /bin/sh -c …" 33 seconds ago Up 27 seconds 8052/tcp awx_task 15a7ed8a3883 ansible/awx_web:11.2.0 "tini -- /bin/sh -c …" 34 seconds ago Up 27 seconds 0.0.0.0:80->8052/tcp awx_web 04baa6943b57 postgres:10 "docker-entrypoint.s…" 44 seconds ago Up 20 seconds 5432/tcp awx_postgres 013828ea0d9b redis "docker-entrypoint.s…" 44 seconds ago Up 27 seconds 6379/tcp awx_redis ef184bf19350 memcached:alpine "docker-entrypoint.s…" 44 seconds ago Up 27 seconds 11211/tcp awx_memcached
ブラウザから確認
VMのIPを入力してブラウザからアクセス
初回接続時にDBマイグレーションが走るので気長に待つ。
ログイン情報はインストールガイドに記載。
You will prompted with a login dialog. The default administrator username is
admin
, and the password ispassword
.
awx/INSTALL.md at devel · ansible/awx
以上
雑感
必要以上にパッケージの依存関係で戸惑った、検証しながら3回構築やり直してこの手順に収まった感じ。
LinuxでDockerを扱った経験がないから、そのままインストールしたらバージョン古くて動かないとか知らないし。
Python系のモジュールも辛いし。
gitはなぜか必要なバージョン満たしてないけど動いた。
さー、これからAWX触りましょうね。