The tutorial now works with AWX 11

Those who work with Ansible Core usually work on the command line. What is still ok for small projects quickly reaches its limits in larger environments, for example when dynamic inventories, automatic retrieval of playbooks from repositories and so on and so forth are required.

Of course, you can do all this somehow, but Red Hat also offers a web-based essay called Ansible Tower, which offers some exciting features, including those mentioned above.

In autumn 2017 it was decided to publish the Ansible Tower in an open source project called AWX - details can be found here if interested - so that these functions can now also be used without purchasing a license.

Install AWX (Ansible) on Debian

Example of a playbook-run in AWX

The article briefly shows the necessary steps to install AWX on Debian GNU/Linux 10 "Buster".

#install required packages
apt install -y  git python3-pip docker docker-compose

#change default version of python to version 3
update-alternatives --install /usr/bin/python python /usr/bin/python3 2

#install ansible via pip3 (installing ansible from repositories would result in errors, see https://github.com/ansible/ansible/issues/37640)
apt -y remove ansible
pip3 install ansible

#clone awx repository
cd ~
git clone https://github.com/ansible/awx/
cd ~/awx/installer

Now we have to adapt the inventory file to our circumstances.

For first test purposes you can surely take over the defaults, but you should be aware that very insecure passwords are assigned here, e.g. for the database. Also, /tmp may not be the best place for "postgres_data_dir".

After editing the inventory file, the installation can be started using ansible.

#set some parameters
sed -i "s|postgres_data_dir=\"~/.awx/pgdocker\"|postgres_data_dir=\"/awx/pg\"|g" inventory
sed -i "s|docker_compose_dir=\"~/.awx/awxcompose\"|docker_compose_dir=\"/awx/compose\"|g" inventory
sed -i "s|#project_data_dir=/var/lib/awx/projects|project_data_dir=/awx/projects|g" inventory

#start installation
ansible-playbook install.yml -i inventory

If no errors occurred here, you can enter the host name of the machine in the browser, log in with the user "admin" and the password "password" and get started.