AWX est un frontend pour piloter Ansible. Il s’agit de la version opensource de Tower qui lui, est stabilisé avec mise à disposition d’un support.
A propos de cet article
Je vous donne ici les instructions pour installer Ansible et AWX sur une debian buster 64 bits.
Pour information, j’ai utilisé un container LXC (Proxmox 6). L’utilisation de docker dans un container « non-privilégié » est possible en ajoutant les lignes suivantes dans la config /etc/pve/lxc/XXXXX.conf :
unprivileged: 1 lxc.apparmor.profile: unconfined lxc.cgroup.devices.allow: a lxc.cap.drop:
Toutes les commandes si dessous se font en root.
Ansible
Prérequis
Installons le nécessaire pour ajouter une clé et l’usage de https dans les dépôts.
apt update
apt dist-upgrade
apt -y install gnupg2 apt-transport-https
Installation
Ajoutons le dépôt de chez launchpad et installons ansible. La version installée devrait correspondre sensible à la 2.8.6 (au 2019-10-25)
echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" | tee /etc/apt/sources.list.d/ansible.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
apt update
apt install -y ansible
ansible --version
AWX
Pre-requis
On ajoute le dépot et on install docker-ce. La version installée devrait correspondre sensible à la 19.03.4 (au 2019-10-25)
echo "deb [arch=amd64] https://download.docker.com/linux/debian buster stable" | tee /etc/apt/sources.list.d/docker-ce.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7EA0A9C3F273FCD8
apt update
apt install -y docker-ce
docker --version
Je désactive l’IPV6 afin d’être sûr que AWX écoutera sur l’interface IPV4 (et je ne m’en sert pas entre mes VM).
cat <<EOF > /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.default.autoconf = 0
EOF
sysctl -p
Installons un générateur de mot de passe et docker-compose (Ce sera celui des dépôt debian officiels)
apt -y git pwgen docker-compose
AWX
Récupérons AWX
cd ~
git clone --depth 50 https://github.com/ansible/awx.git
Configurons quelques valeurs
cd awx/installer
sed -i "s|docker_compose_dir=.*$|docker_compose_dir=/var/lib/awx|g" inventory
sed -i "s|^#project_data_dir=.*$|project_data_dir=/var/awx_projects|g" inventory
sed -i "s|^postgres_data_dir=.*$|postgres_data_dir=/var/pgdocker|g" inventory
sed -i "s|^secret_key=.*$|secret_key=$(pwgen -N 1 -s 30)|g" inventory
sed -i "s|^pg_admin_password=.*$|pg_admin_password=$(pwgen -N 1 -s 30)|g" inventory
sed -i "s|^pg_password=.*$|pg_password=$(pwgen -N 1 -s 30)|g" inventory
sed -i "s|^rabbitmq_password=.*$|rabbitmq_password=$(pwgen -N 1 -s 30)|g" inventory
Lonçons la création des containers AWX
ansible-playbook -i inventory install.yml
Note : Pour ma part, j’ai du relancer cette commande 2 fois car j’ai eu un timeout, je n’ai pas noté si il venais de mon système trop lent ou de ma connexion internet.
Comptez 24Go pour AWX, il va occuper pas mal d’espace docker (/var/lib/docker) pour ses 5 VM :
root@ansible:/var/lib/awx# docker-compose ps Name Command State Ports awx_memcached docker-entrypoint.sh memcached Up 11211/tcp awx_postgres docker-entrypoint.sh postgres Up 5432/tcp awx_rabbitmq docker-entrypoint.sh /bin/ … Up 15671/tcp, 15672/tcp, 25672/tcp, 4369/tcp, 5671/tcp, 5672/tcp awx_task /tini -- /bin/sh -c /usr/b … Up 8052/tcp awx_web /tini -- /bin/sh -c /usr/b … Up 0.0.0.0:80->8052/tcp
Voilà, à partir de là, vous pouvez vous y connecter avec votre navigateur sur le port 80 et les identifiants à changer de suite : admin / password
Pour les mises à jour
Les mises à de Ansible se feront par le gestionnaire de paquet Debian.
Pour AWX, il faudra lancer ces commandes :
cd /var/lib/awx
docker-compose stop
docker-compose pull
docker-compose up --force-recreate -d
#1 par Isma à 16 juin 2020 - 16 h 39 min
Citation
Salut ! J’avais une petite question à titre informatif, tu arrives à visualiser tes machines qui sont sur ton/tes clusters proxmox depuis AWX ?