Wer mit Ansible Core arbeitet, arbeitet normalerweise auf der Kommandozeile. Was bei kleinen Projekten noch ok ist, stößt in größeren Umgebungen schnell an seine Grenzen, beispielsweise wenn dynamische Inventories, automatisches Holen der Playbooks aus Repositories und so weiter und so fort gefragt sind. 

Klar, das alles kann man sich irgendwie basteln, Red Hat bietet allerdings auch eine web-basierten Aufsatz namens Ansible Tower an, der einige spannende - u.a. die oben genannten - Funktionen anbietet.

Im Herbst 2017 entschied man sich, den Ansible Tower in einem Open-Source-Projekt namens AWX zu veröffentlichen - Details kann man bei Interesse hier nachlesen - so dass man diese Funktionen nun auch ohne Kauf einer Lizenz nutzen kann.

AWX (Ansible) auf Debian 10 Buster installieren

Beispielhafter Playbook-Lauf

Der Artikel zeigt kurz die nötigen Schritte der Installation von AWX unter Debian GNU/Linux 10 "Buster".

##install some basic software
apt install -y ansible docker docker-compose git python3-docker 

#start docker and enable autostart
systemctl enable docker
systemctl start docker

#change default version of python to veersion 3
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives --install /usr/bin/python python /usr/bin/python3 2

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

Nun müssen wir das Inventory-File an unsere Gegebenheiten anpassen.

Für erste Testzwecke kann man sicher erstmal die Defaults übernehmen, sollte sicher aber bewusst sein, dass hier sehr unsichere Passwörter z.B. für die Datenbank vergeben werden. Auch ist /tmp beim "postgres_data_dir" vielleicht nicht der beste Ort.

Nach Bearbeiten des Inventory-File wird die Installation mit Ansible gestartet.

#changes parameters
sed -i "s|postgres_data_dir=/tmp/pgdocker|postgres_data_dir=/var/pgdocker|g" inventory
sed -i "s|docker_compose_dir=/tmp/awxcompose|docker_compose_dir=/var/lib/awx|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

Wenn hier keine Fehler kamen, kann dann im Browser den Hostname der Maschine eingeben und sich mit dem Benutzer "admin" und dem Passwort "password" einloggen und loslegen.

AWX und seine Komponenten updaten

Ein Update ist dank docker-compose sehr einfach:

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