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 9 "Stretch".

#install some basic software
apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common dirmngr git python-pip

#add stretch-backports
echo "deb http://ftp.debian.org/debian stretch-backports main contrib non-free" > /etc/apt/sources.list.d/stretch-backports.list

#add Docker CE Repository
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

#update package lists
apt update

#install Ansible and docker
apt install -y ansible -t stretch-backports docker-ce docker-compose

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

#configure installer
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 continue:

#changes parameters
sed -i "s|/tmp/pgdocker|/var/pgdocker|g" inventory
sed -i "s|# use_docker_compose=false|use_docker_compose=true|g" inventory
sed -i "s|#project_data_dir=/var/lib/awx/projects|project_data_dir=/var/awx_projects|g" inventory
#install awx
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.

Update AWX and its components

An update is very easy thanks to docker-compose (now you also know why we activated docker-compose above):

cd /var/lib/awx/
docker-compose stop
docker-compose pull && docker-compose up --force-recreate

Translated via: www.DeepL.com/Translator