三種 AWX 裝法 (Offline/Without Internet)

Jasmine H
2 min readJun 11, 2021

Free Link

AWX provides a web-based user interface, REST API, and task engine built on top of Ansible

  1. 安裝 AWX < 18 ,用 Docker 裝 :
AWX 17.1.0 安裝範例 : 1. install python
2. install ansible with root
3. install docker
4. pip3 install docker-compose
docker-compose — version 查看是否成功
5. systemctl start docker (需sudo密碼)
systemctl enable docker
systemctl status docker
6. Unzip awx-17.1.0.zip from https://github.com/ansible/awx/releases
7. 修改/installer/inventory (主要是改password)
8. Pull Docker images:
centos:8, Postgres:12, redis, ansible/awx:17.1.0
9. 改上述 docker image tag (為了符合 zip 中的 playbook 使用的 image name:
docker image tag d583c3ac45fd xxxxxx
10. $ cd installer
# Run the Ansible playbook
$ ansible-playbook -i inventory -e
docker_registry_password=password install.yml
11. 完成後可看到docker image已起,使用inventory中設的帳密登入
[Reference]
https://www.cnblogs.com/lastyear/p/13915174.html
http://andy51002000.blogspot.com/2019/02/docker-permission-denied.html

2. AWX >=18 ,用 Ansible Operator (with K8s) 裝:

This operator is meant to provide a more Kubernetes-native installation method for AWX

3. AWX RPM版 (RPM builds of AWX),在無 Docker 的環境時可用,需自行將各rpm安裝包下載好

Download Link for CentOS 7 : https://copr.fedorainfracloud.org/coprs/mrmeee/ansible-awx/[0] Need ROOT privilege to install these library[1] install the policycoreutils-python and allow Nginx to connect to network as belowyum localinstall policycoreutils-python-2.5–33.el7.x86_64.rpm
semanage port -a -t http_port_t -p tcp 8050
semanage port -a -t http_port_t -p tcp 8051
semanage port -a -t http_port_t -p tcp 8052
setsebool -P httpd_can_network_connect 1
[2] Epel / Software Collections Repositoriesyum localinstall epel-release-7–11.noarch.rpm
yum localinstall centos-release-scl-2–3.el7.centos.noarch.rpm centos-release-scl-rh-2–3.el7.centos.noarch.rpm
[3] Install RabbitMQ and Gityum localinstall erlang-21.3.8.9–1.el7.x86_64.rpm rabbitmq-server-3.7.9–1.el7.noarch.rpm rh-git29–2.3–4.el7.x86_64.rpm
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
[4] Install PostgreSQL 10yum localinstall postgresql10–10.12–1PGDG.rhel7.x86_64.rpm postgresql10-server-10.12–1PGDG.rhel7.x86_64.rpm postgresql10-contrib-10.12–1PGDG.rhel7.x86_64.rpm postgresql10-libs-10.12–1PGDG.rhel7.x86_64.rpm
scl enable rh-postgresql10 “postgresql-setup initdb”
systemctl start rh-postgresql10-postgresql.service && systemctl enable rh-postgresql10-postgresql.service
scl enable rh-postgresql10 “su postgres -c \”createuser -S awx\””
scl enable rh-postgresql10 “su postgres -c \”createdb -O awx awx\””
[5] Install memcachedyum localinstall memcached-1.4.15–10.el7_3.1.x86_64.rpm
systemctl enable memcached
systemctl start memcached
[6] Install & configure NGINXyum localinstall nginx-1.16.1–1.el7.x86_64.rpm
cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
cp -p nginx.conf /etc/nginx/nginx.conf
systemctl start nginx
systemctl enable nginx
[6] Install Python3 and dependciesyum localinstall rh-python36-python-3.6.3–7.el7.x86_64.rpm[7] AWX Installation and initializationyum localinstall ansible-awx-9.2.0.283–1.el7.x86_64.rpm[8] Initialize AWXsudo -u awx scl enable rh-python36 rh-postgresql10 rh-git29 “GIT_PYTHON_REFRESH=quiet awx-manage migrate”
echo “from django.contrib.auth.models import User; User.objects.create_superuser(‘admin’, ‘root@localhost’, ‘password’)” | sudo -u awx scl enable rh-python36 rh-postgresql10 “GIT_PYTHON_REFRESH=quiet awx-manage shell”
sudo -u awx scl enable rh-python36 rh-postgresql10 rh-git29 “GIT_PYTHON_REFRESH=quiet awx-manage create_preload_data” # Optional Sample Configuration
sudo -u awx scl enable rh-python36 rh-postgresql10 rh-git29 “GIT_PYTHON_REFRESH=quiet awx-manage provision_instance — hostname=$(hostname)”
sudo -u awx scl enable rh-python36 rh-postgresql10 rh-git29 “GIT_PYTHON_REFRESH=quiet awx-manage register_queue — queuename=tower — hostnames=$(hostname)”
[9] Enable and Start AWXsystemctl enable awx
systemctl start awx
[Reference]
http://yallalabs.com/devops/how-to-install-ansible-awx-without-docker-centos-7-rhel-7/
https://raw.githubusercontent.com/faudeltn/AnsibleTower-awx/master/ansible-awx-install/install-awx

--

--

Jasmine H

Data Engineer from Taiwan, recently working on EFK and Kubernetes projects.