AWX(Ansible Works)のインストール方法

スポンサーリンク

AWX(Ansible Works)のインストール手順を示します。AWXは、Ansibleに対してWebインターフェース, REST API, タスクエンジンの機能を提供するプロジェクトです。AWXはAnsible Towerのアップストリームに当たるプロジェクトで、Ansible TowerはAWXの派生プロジェクトの1つです。

公式ドキュメント

AWXの公式資料は、GitHubのREADME.mdをを参照ください。

ansible/awx
AWX Project. Contribute to ansible/awx development by creating an account on GitHub.

インストール方法概要

前提条件

AWXは下記ソフトウェア群がインストールされている事を前提としています。

  • Ansible Requires Version 2.8+
  • Docker
  • docker Python module (docker-py, docker-compose)
  • GNU Make
  • Git Requires Version 1.8.4+
  • Python 3.6+

対応プラットフォーム

対応プラットフォームは以下の通りです。

  • OpenShift
  • Kubernetes
  • Docker Compose

この資料では最もインストールが簡単なDocker Composeを使用する場合を紹介します。

AWXのインストール

リポジトリのクローン

AWXのリポジトリをクローンします。

git clone -b 14.0.0 https://github.com/ansible/awx.git

AWXのインストール

AWXのインストールはAnsible playbookによって提供されます。以下のコマンドでAWXのインストールができます。

cd awx/installer
ansible-playbook -i inventory install.yml

インストールに成功すれば以下4つのコンテナが起動します。

# docker container ls
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                  NAMES
c778cd639c42        ansible/awx:14.0.0   "tini -- /usr/bin/la…"   7 minutes ago       Up 7 minutes        8052/tcp               awx_task
718975c93f47        ansible/awx:14.0.0   "tini -- /bin/sh -c …"   7 minutes ago       Up 7 minutes        0.0.0.0:80->8052/tcp   awx_web
519cebef4137        postgres:10          "docker-entrypoint.s…"   7 minutes ago       Up 7 minutes        5432/tcp               awx_postgres
00d6723b8ebf        redis                "docker-entrypoint.s…"   7 minutes ago       Up 7 minutes        6379/tcp               awx_redis

httpで接続可能である事を確認します。

# curl -I http://localhost/
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 12 Aug 2020 06:34:55 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 11460
Connection: keep-alive
Vary: Accept-Language, Origin, Cookie
Content-Language: en
X-API-Total-Time: 0.031s
Strict-Transport-Security: max-age=15768000
Content-Security-Policy: default-src 'self'; connect-src 'self' ws: wss:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' *.pendo.io; img-src 'self' *.pendo.io data:; report-uri
 /csp-violation/
X-Content-Security-Policy: default-src 'self'; connect-src 'self' ws: wss:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' *.pendo.io; img-src 'self' *.pendo.io data:; report-u
ri /csp-violation/
X-Frame-Options: DENY

AWXへの接続

AWXへの「接続ユーザ/パスワード」は、デフォルト設定の場合「admin/password」です。デフォルトの設定はinventoryファイルに定義されています。

# cat inventory | grep ^admin
admin_user=admin
admin_password=password

ブラウザで接続すると以下のような画面が表示されます。

AWX login

ログインに成功すると以下のような画面が表示されます。

AWX top page

非公式情報

CentOS8 Dockerインストール

2020年8月時点、CentOS 8.X系にDockerをインストールするのはひと手間が必要です。以下にインストールするコツのメモ書きを残します。

docker-ceのリポジトリからDockerをインストールしようとすると、containerd.ioの依存関係を解決する事ができません。そこで、containerd.ioを「CentOS7」のリポジトリからインストールします。

dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm

docker-ceをインストールします。

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
dnf install docker-ce

dockerを有効にします。

systemctl enable --now docker

python docker-compose

dockerとdocker-pyとdocker-composeは依存関係があり、同時にインストールしないと以下のようなエラーが発生する事があります。

TASK [local_docker : Start the containers] **********************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Cannot have both the docker-py and docker python modules (old and new version of Docker SDK for Python) installed together as they use the
same namespace and cause a corrupt installation. Please uninstall both packages, and re-install only the docker-py or docker python module (for ansible171.gokatei.go's Python /usr/bin/python3). It
is recommended to install the docker module if no support for Python 2.6 is required. Please note that simply uninstalling one of the modules can leave the other module in a broken state."}

このエラーが発生した場合はdocker-composeの再インストールを試みてください。

pip3 uninstall docker docker-py docker-compose
pip3 install docker-compose

デフォルトユーザでログインできない

AWXのバージョンによってはデフォルト設定のユーザ名とパスワードでログインできない事もあります。このような場合はinventoryファイルを編集してユーザ名とパスワードを変更してください。

# grep ^admin awx/installer/inventory
admin_user=admin
admin_password=P@ssw0rd
タイトルとURLをコピーしました