【CentOS8】Ansible「AWX」インストール時のアクセスエラー解決方法

CentOS8の環境でDockerコンテナを使った無償版AnsibleTower「AWX」のインストール手順と注意事項についてまとめました。

今回のCentOS8のバージョンは2020年11月時点での最新版となります。

$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)

前回、CentOS7でのインストールは以下を参照してください。

ansible

無償版AnsibleTower「AWX」インストールと注意事項

AWSのインストールでは事前にDockerとPython3のインストールが必要となります。

CentOS8のDockerインストールはこちらの記事を参考にしてください。

Dockerインストール後、「python3」のインストールをします。
AnsibleをPythonバージョン3で動かすので、以下の通りインストールを実施します。

$ yum install -y python3

インストールが完了したら以下でバージョンを確認します。

$ python3 -V
Python 3.6.8

pipバージョン3で動かすので「pip3」コマンドを実行します。

$ pip3 -V
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)

「pip」コマンドで「ansible」と「docker-compose」インストール

バージョン3でインストールを実施するので以下のコマンドで「ansible」と「docker-compose」をインストールします。

$ pip3 install ansible docker-compose

正常にインストールが完了したら以下でバージョンを確認します。
※2020年11月時点でのバージョンは2.10となります。

$ ansible --version
ansible 2.10.3
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.6.8 (default, Apr  2 2020, 13:34:55) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

AWXのリポジトリクローンを実施するために「Git」インストール

Githubからリポジトリクローンを実施するためには「Git」コマンドを使用するので「yum」でインストールします。

$ dnf install -y git

今回のバージョンは以下となります。

$ git --version
git version 2.18.4

次に任意のフォルダを作成し、リポジトリのクローンを実施します。

$ mkdir awx_git
$ cd awx_git
$ git clone https://github.com/ansible/awx.git
Cloning into 'awx'...
remote: Enumerating objects: 147, done.
remote: Counting objects: 100% (147/147), done.
remote: Compressing objects: 100% (91/91), done.
remote: Total 255780 (delta 94), reused 85 (delta 56), pack-reused 255633
Receiving objects: 100% (255780/255780), 231.40 MiB | 1.00 MiB/s, done.
Resolving deltas: 100% (197531/197531), done.

AWXインストール(Ansible_Playbook実行)

上記で作成したフォルダ「awx_git」は以下に「awx」フォルダが作成されます。
以下「installer」配下で「install.yml」を実行します。

$ cd awx/installer
$ ansible-playbook -i inventory install.yml
 
------中略------
 
PLAY RECAP *********************************************************************************************************************************************
localhost                  : ok=15   changed=7    unreachable=0    failed=0    skipped=91   rescued=0    ignored=0
AWXが正常にインストールされると以下のようにAWX関連のDockerコンテナが作成されます。

1
2
3
4
5
6
$ docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                  NAMES
c530e8fd12e4        ansible/awx:15.0.1   "/usr/bin/tini -- /u…"   14 hours ago        Up 43 seconds       8052/tcp               awx_task
8f01bda61ea4        ansible/awx:15.0.1   "/usr/bin/tini -- /b…"   14 hours ago        Up 43 seconds       0.0.0.0:80->8052/tcp   awx_web
301a22b26ad8        redis                "docker-entrypoint.s…"   14 hours ago        Up 43 seconds       6379/tcp               awx_redis
a7b40b64db1a        postgres:10          "docker-entrypoint.s…"   14 hours ago        Up 43 seconds       5432/tcp               awx_postgres

上記のように成功した後は、AWXをインストールしたホストにHTTPアクセスをします。

AWXをインストールしてもHTTPアクセスできない・サービスが起動しない場合

CentOS8のDockerコンテナ環境だと、AWXが正常に起動せず、HTTPアクセスができません。
原因はコンテナ間の通信がうまくいかず、AWXがデータベースやそのほかのコンテナへの通信ができないからです。

firewallでNAPTの許可設定をしていない場合、アクセスできない状況となります。
コンテナ間通信をするためにNAPTを許可する設定を追加します。

$ firewall-cmd --add-masquerade --permanent
success
$ firewall-cmd --reload
success

この様にAWXのログイン画面が表示されます。
この事象はDockerコンテナを構築するとよくあることなので、firewallでNAPTの設定は常に許可状態にしておきましょう。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!