lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

CentOS 7でAnsible AWXの環境を構築(Docker版)

概要

興味が湧いたのでAnsible AWX触りたいと思って、環境構築やってみました。
CentOS 7でやってると依存関係とか諸々でしんどかったので手順を残しておきます。

目次

参考サイト様

前提

実行環境はWindows 10のVMware WorkStationでCentOS 7

  • Windows 10 1909
  • VMware(R) Workstation 15 Player 15.5.2 build-15785246
    • 一応、マシンにメモリ8GB割当
[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を入力してブラウザからアクセス

f:id:HM_Atlas:20200531173758p:plainf:id:HM_Atlas:20200531173748p:plainf:id:HM_Atlas:20200531173751p:plain

初回接続時にDBマイグレーションが走るので気長に待つ。
ログイン情報はインストールガイドに記載。

You will prompted with a login dialog. The default administrator username is admin, and the password is password.
awx/INSTALL.md at devel · ansible/awx

以上

雑感

必要以上にパッケージの依存関係で戸惑った、検証しながら3回構築やり直してこの手順に収まった感じ。
LinuxでDockerを扱った経験がないから、そのままインストールしたらバージョン古くて動かないとか知らないし。
Python系のモジュールも辛いし。
gitはなぜか必要なバージョン満たしてないけど動いた。 さー、これからAWX触りましょうね。