本記事はawxをDocker CEにインストールした時の手順をまとめたものです。
参考サイト
・awx概要説明
https://github.com/ansible/awx
・awxインストール手順
https://github.com/ansible/awx/blob/devel/INSTALL.md
→インストール要件について記載されているため必ず参照すること
awxインストール前設定
awxを構築するために、以下を事前準備する必要があります。
Docker、docker-py、ansible、git、Node.js、npm、GNU Make
Docker CE、docker-pyインストール
awxはコンテナで構成されているため、Dockerやkubernetesをインストールする必要があります。
先日私が記載した内容をもとにDocker CEをインストールしていきます。
CentOS 7.6にDocker CEをインストールしてみた
また、docker-py README.md を参照し docker-py をインストールします。
Docker CEインストール
[root@awx ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@awx ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
[root@awx ~]# yum install -y docker-ce docker-ce-cli containerd.io
docker-pyインストール
[root@awx ~]# yum -y install epel-release
[root@awx ~]# yum -y install python-pip
[root@awx ~]# pip install docker
[root@awx ~]# systemctl enable docker
[root@awx ~]# systemctl start docker
ansibleインストール
[root@awx ~]# yum -y install ansible
gitインストール
updatesリポジトリのgitはバージョンが古い。
[root@awx ~]# yum info git | grep ^Version
Version : 1.8.3.1
そのため、IUS からダウンロードする。
最新情報については Getting Started を参照すること。
[root@awx ~]# yum -y install https://centos7.iuscommunity.org/ius-release.rpm
[root@awx ~]# yum --disablerepo=* --enablerepo=ius info git2u | grep ^Version
Version : 2.16.5
[root@awx ~]# yum --disablerepo=* --enablerepo=ius -y install git2u
以下のエラーが表示された場合、
perl-TermReadKey perl-Error libsecret をインストールしてから、git2uをインストールする。
Error: Package: git2u-perl-Git-2.16.5-1.ius.centos7.noarch (ius)
Requires: perl(warnings)
Error: Package: git2u-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl(File::Find)
Error: Package: git2u-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl(lib)
Error: Package: git2u-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl(Getopt::Long)
Error: Package: git2u-perl-Git-2.16.5-1.ius.centos7.noarch (ius)
Requires: perl(Time::Local)
Error: Package: git2u-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl(strict)
Error: Package: git2u-perl-Git-2.16.5-1.ius.centos7.noarch (ius)
Requires: perl(IPC::Open2)
Error: Package: git2u-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: /usr/bin/perl
Error: Package: git2u-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl(File::Basename)
Error: Package: git2u-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl(File::Spec)
Error: Package: git2u-perl-Git-2.16.5-1.ius.centos7.noarch (ius)
Requires: perl(Exporter)
Error: Package: git2u-core-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl(IPC::Open2)
Error: Package: git2u-perl-Git-2.16.5-1.ius.centos7.noarch (ius)
Requires: perl(Cwd)
Error: Package: git2u-perl-Git-2.16.5-1.ius.centos7.noarch (ius)
Requires: perl(strict)
Error: Package: git2u-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl >= 5.008
Error: Package: git2u-core-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl(warnings)
Error: Package: git2u-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl(Error)
Error: Package: git2u-perl-Git-2.16.5-1.ius.centos7.noarch (ius)
Requires: perl(Error)
Error: Package: git2u-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: libsecret-1.so.0()(64bit)
Error: Package: git2u-core-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: /usr/bin/perl
Error: Package: git2u-perl-Git-2.16.5-1.ius.centos7.noarch (ius)
Requires: perl(:MODULE_COMPAT_5.16.3)
Error: Package: git2u-perl-Git-2.16.5-1.ius.centos7.noarch (ius)
Requires: perl >= 5.008
Error: Package: git2u-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl(warnings)
Error: Package: git2u-core-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl(strict)
Error: Package: git2u-perl-Git-2.16.5-1.ius.centos7.noarch (ius)
Requires: perl(Carp)
Error: Package: git2u-perl-Git-2.16.5-1.ius.centos7.noarch (ius)
Requires: perl(Fcntl)
Error: Package: git2u-2.16.5-1.ius.centos7.x86_64 (ius)
Requires: perl(Term::ReadKey)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
[root@awx ~]# yum -y install perl-TermReadKey perl-Error libsecret
[root@awx ~]# yum --disablerepo=* --enablerepo=ius -y install git2u
バージョン確認
[root@awx ~]# git --version
git version 2.16.5
Node.js、npm インストール
最新のインストール手順については、Node.js README を参照すること。
Node.jsをインストールするとnpmも同時にインストールされます。
[root@awx ~]# curl -sL https://rpm.nodesource.com/setup_8.x | bash -
[root@awx ~]# yum install -y nodejs
[root@awx ~]# yum -y install gcc-c++ make
バージョン確認
[root@awx ~]# npm -v
6.4.1
再起動
[root@awx ~]# shutdown -r now
awxインストール
git cloneを実行し、inventoryファイルなどをコピーする。
awx環境 は ansible により構築されます。
[root@awx ~]# git clone https://github.com/ansible/awx
以下はawxに設定される環境情報です。
適宜変更します。(今回は変更せずに実行します。)
[root@awx ~]# egrep -v '^#' awx/installer/inventory | egrep -v '^$'
localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python"
[all:vars]
dockerhub_base=ansible
awx_task_hostname=awx
awx_web_hostname=awxweb
postgres_data_dir=/tmp/pgdocker
host_port=80
docker_compose_dir=/var/lib/awx
pg_username=awx
pg_password=awxpass
pg_database=awx
pg_port=5432
rabbitmq_password=awxpass
rabbitmq_erlang_cookie=cookiemonster
admin_user=admin ←awxログインユーザ
admin_password=password ←awxログインユーザ用パスワード
create_preload_data=True
secret_key=awxsecret
playbook実行。
unreachable=0 failed=0 であれば正常終了です。
[root@awx ~]# cd awx/installer/
[root@awx installer]# ansible-playbook -i inventory install.yml
PLAY RECAP **************************************************************************************************************************************************
localhost : ok=14 changed=7 unreachable=0 failed=0
[root@awx ~]#
補足情報
[root@awx installer]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b035f8b79d12 ansible/awx_task:3.0.1 "/tini -- /bin/sh -c…" About a minute ago Up About a minute 8052/tcp awx_task
358b5df53858 ansible/awx_web:3.0.1 "/tini -- /bin/sh -c…" About a minute ago Up About a minute 0.0.0.0:80->8052/tcp awx_web
b03dc0af759c memcached:alpine "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 11211/tcp memcached
6d8543d032c2 ansible/awx_rabbitmq:3.7.4 "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 25672/tcp rabbitmq
8c4fcc317eea postgres:9.6 "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 5432/tcp postgres
[root@awx installer]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
memcached alpine f0c2443012f4 9 days ago 10.2MB
postgres 9.6 5e8319b0f67b 12 days ago 230MB
ansible/awx_task 3.0.1 885ea0fe022d 4 weeks ago 1.01GB
ansible/awx_web 3.0.1 70ac81469770 4 weeks ago 977MB
ansible/awx_rabbitmq 3.7.4 e08fe791079e 11 months ago 85.6MB
デモ用ジョブ実行確認
- http://xxx.xxx.xxx.xxx へアクセスする。
以上