Ansible AWX Installation on Centos with Docker Step by Step

Rajesh
4 min readMay 31, 2020
Source site: postpressmag

We have been using some or the other Configuration management tool to automate our work like Chef,Puppet,SaltStack but Ansible stand out because of very minimum requirement and best part its agent less (Puppet, chef they all need agent) its easy to write in yaml and that make it people favorite tool.

Configuration management tool like Puppet, Chef have well build GUI interface which make them easy to use at enterprise level and they prefer to stick to such tools as they have wide range and type of numerous servers to manage.

Puppet Dashboard picture
Puppet Dashboard (Photo source: Puppet.com)
Chef Dashboard Image
Chef Dashboard (Source: Chef.io)

Ansible is not behind if you are not aware, they also have GUI tool which complements Anisble (Core, the CLI) that we have been using all this time. Cheery on top is it have both the version paid — Ansible Tower and open sourced— Ansible AWX (need no licence).

AWX Dashboard
AWX Dashboard

AWX core components:
1. Database — Postgres DB
2. Message Queue — RabbitMQ
3. Caching solution — Memcached/Redis
4. Webserver — Nginx

AWX installation can be done in two way on Linux server and on Docker.

If you install on Linux server without Docker, we have to install all AWX component yourself manually be it database,rabbitmq,memcached and web server which will be painful if not done right and not easy also in some case.

A better and quick way is to install on Docker, Docker compose file are well written and AWX also offer them on official repository.

Hardware requirements: ( ie: a AWS t2.medium server is enough)

Memory : 4 GB | CPU: 2 | Internet access & open port 80| Root access

Note: Installation will fail on a server if of low memory (below 4 GB)

Overview of what to expect here in coming steps:

— Configure of repository's
— Install OS packges, Ansible, Docker and Python-pip
— Clone AWX repo from official git account
— Update configure of AWX “inventory” file with parameter (DB,RabbitMQ etc username,passwrd port etc)
— Run play book for installation and wait for it and enjoy

Step by Step Ansible AWX installation on CentOs with Docker

We will start with pre-configuration part where we install packages, set repose and disable SeLinux.

Ansible role: git clone git@github.com:iamraj007/Ansible_AWX_install_role.git

Once we are done with pre-configuration we can jump in to main part to clone and set configuration file. Do note several configuration can be updated in inventory file, that we will see below in our setup.

Now that you can see the login or migration page on http://PublicIP:80 you can start using the application in next few minute (post migration finish).

Note: If have not update username and password, it will be admin/password

Inventory file update
AWX containers running post docker compose finish
AWX Docker container installation logs
When AWX is update and done,login screen next
AWX migration is the first thing you see after container are up
AWX login screen
Ansible AWX dashboard
Tower job Run
Run a Ansible job and check live output
Add-Hock command Ansible AWX
Run Pre-built module/commands against servers
AWX project configuration
New project configuration in AWX
AWX template configuration
New template configuration in AWX
Ansible AWX installation demo, end to end!

Happy automating with AWX GUI of Ansible jobs,plays and roles!

BTW this is not automation, stop lying to yourself 😂!

--

--

Rajesh

A tech guy doing Cloud and DevOps stuffs, loves tech, cloud, network and IT security.