
In Today’s tutorial, we will be installing ansible Awx (Ansible web executable). This is an open-source project that allows you to manage and control your ansible project easily from a web interface with a task engine that is built on ansible. We will be installing AWX on centos 8 servers with 4GB RAM with Epel repository installed. Kindly check out some of my other guides: Openstack Deployment with Devstack, Deploying a load balancer from scratch and adding backend servers, how to monitor services using Zabbix, and how to set-up PowerShell on a Linux server. LET’S GET STARTED.
First let’s Disable SELINUX
/etc/sysconfig/selinux
SELINUX=disabled
Next install the epel repository
dnf install epel-release -y

Now we will install some dependent packages
dnf install git gcc gcc-c++ ansible nodejs gettext device-mapper-persistent-data lvm2 bzip2 python3-pip -y

Next we will install docker, so we can run AWX in a container. We have to add the docker repository to the system using the below command
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Install Docker and verify docker version
dnf install docker-ce -y

Then start and enable docker to load at start up
systemctl start docker
systemctl enable docker

Now that we have our docker running, lets install AWX. We have to download the latest version from git hub using the following command below
git clone https://github.com/ansible/awx.git

The next step is very important as we must follow the instructions on how to deploy Ansible AWX on CentOS 8. Additionally, we need to generate a secret key to encrypt the inventory file using the below command. Save this key, as it will be needed.
cd awx/installer
openssl rand -base64 30
wnwsaB7Z1KbNWTFuedc8LF9+XFpOIHCA38QwqSto

Next cd into the installer directory, vim and edit the file with the following parameters
[all:vars] dockerhub_base=ansible awx_task_hostname=awx postgres_data_dir="/var/lib/pgdocker" host_port=80 host_port_ssl=443 docker_compose_dir="~/.awx/awxcompose" pg_username=awx pg_password=awxpass pg_database=awx pg_port=5432 pg_admin_password=password rabbitmq_password=awxpass rabbitmq_erlang_cookie=cookiemonster admin_user=admin admin_password=password create_preload_data=True secret_key=wnwsaB7Z1KbNWTFuedc8LF9+XFpOIHCA38QwqSto awx_official=true awx_alternate_dns_servers="8.8.8.8,8.8.4.4" project_data_dir=/var/lib/awx/projects
Create the postgres directory
mkdir /var/lib/pgdocker
How to deploy Ansible AWX on centos 8
To begin with, let’s explore how to deploy Ansible AWX on CentOS 8. Once this is done, run the command to install AWX in the installer directory
ansible-playbook -i inventory install.yml

Once your docker has been installed and all the required dockers started. We have to verify the status using the following command
docker ps

Now that installation is completed and dockers verified, let’s move on to the next step: How to deploy Ansible AWX on CentOS 8. After that, we can proceed to add the HTTPS service to the firewall.
firewall-cmd --zone=public --add-masquerade --permanent firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd –reload

Now try to access the dashboard using your server IP.

Now, we have successfully followed the steps on how to deploy Ansible AWX on CentOS 8, and we have deployed an Ansible tower instance. We can now use this instance to effectively manage and schedule jobs on our remote nodes using SSH credentials or SSH keys.