CentOS8の環境でDockerコンテナを使った無償版AnsibleTower「AWX」のインストール手順と注意事項についてまとめました。
今回のCentOS8のバージョンは2020年11月時点での最新版となります。
$ cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core)
前回、CentOS7でのインストールは以下を参照してください。
無償版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で学べます。
コメントを残す