Ansible est un outil de gestion et d'automatisation de la configuration gratuit et open source utilisé pour gérer des centaines et des milliers de serveurs à partir d'un emplacement central.
Ansible AWX est un projet open source, sponsorisé par Red Hat, qui vous aide à contrôler Ansible dans les environnements informatiques. Il fournit une interface Web REST API et un moteur de tâches pour Ansible. Vous pouvez gérer les playbooks, les secrets, les inventaires et les tâches cron à l'aide de l'interface Web AWX.
Dans ce tutoriel, nous allons vous montrer comment installer Ansible AWX avec Docker sur Debian 10.
Prérequis
- Un nouveau VPS Debian 10 sur la plate-forme cloud d'Atlantic.net
- Un mot de passe root configuré sur votre serveur
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur, en choisissant Debian 10 comme système d'exploitation, avec au moins 4 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois connecté à votre serveur Debian 10, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
apt-get update -y
Étape 2 - Installer Docker
Tout d'abord, vous devrez installer Docker et Docker compose sur votre système. Par défaut, la dernière version de Docker n'est pas disponible dans le référentiel standard Debian, vous devrez donc ajouter le référentiel Docker à votre système.
Installez les dépendances requises avec la commande suivante :
apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y
Ensuite, téléchargez et ajoutez la clé Docker GPG avec la commande suivante :
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
Ensuite, ajoutez le référentiel Docker avec la commande suivante :
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
Ensuite, mettez à jour le référentiel Docker et installez Docker avec Docker compose à l'aide de la commande suivante :
apt-get update -y apt-get install docker-ce docker-compose -y
Une fois les deux packages installés, vérifiez la version installée de Docker avec la commande suivante :
docker --version
Vous devriez obtenir le résultat suivant :
Docker version 19.03.13, build 4484c46d9d
Étape 2 :Installer Ansible
AWX est construit sur le dessus d'Ansible. vous devrez donc installer Ansible sur votre système.
Tout d'abord, ajoutez le référentiel Ansible avec la commande suivante :
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" | tee /etc/apt/sources.list.d/ansible.list
Ensuite, mettez à jour le référentiel et installez Ansible avec la commande suivante :
apt-get update -y apt-get install ansible -y
Une fois Ansible installé, vérifiez la version installée d'Ansible à l'aide de la commande suivante :
ansible --version
Vous devriez obtenir le résultat suivant :
ansible 2.9.13 config file = /etc/ansible/ansible.cfg configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules'] ansible python module location = /usr/lib/python2.7/dist-packages/ansible executable location = /usr/bin/ansible python version = 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0]
Étape 3 :Installez Node.js et la bibliothèque Python
Tout d'abord, installez Node.js, NPM et Git avec la commande suivante :
apt-get install nodejs npm git -y npm install npm --global
Ensuite, installez le module Python pour Docker et les autres dépendances requises avec la commande suivante :
apt-get install python3-pip pwgen python3-docker -y pip3 install requests==2.14.2
Ensuite, mettez à jour la version Python par défaut avec la commande suivante :
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1 update-alternatives --install /usr/bin/python python /usr/bin/python3 2
Ensuite, vous devrez installer le module Docker compose Python sur votre système.
Tout d'abord, vérifiez la version installée de Docker compose avec la commande suivante :
docker-compose version
Vous devriez obtenir le résultat suivant :
docker-compose version 1.21.0, build unknown docker-py version: 3.4.1 CPython version: 3.7.3 OpenSSL version: OpenSSL 1.1.1d 10 Sep 2019
Ensuite, installez la version correspondante du module Docker compose Python avec la commande suivante :
pip3 install docker-compose==1.21.0
Étape 4 - Installer Ansible AWX
Commencez par télécharger la dernière version de la source AWX à partir du référentiel Git à l'aide de la commande suivante :
git clone --depth 50 https://github.com/ansible/awx.git
Une fois téléchargé, changez le répertoire en awx et générez la clé secrète avec la commande suivante :
cd awx/installer/ pwgen -N 1 -s 30
Vous devriez obtenir le résultat suivant :
4NaNkNcMBOj4Jxp4fWi91mymuW9TbR
Créez ensuite un nouveau fichier d'inventaire avec la commande suivante :
nano inventory
Ajoutez les lignes suivantes, y compris l'utilisateur administrateur, le mot de passe, la clé secrète, le port et le nom d'hôte, comme indiqué ci-dessous :
dockerhub_base=ansible awx_task_hostname=awx awx_web_hostname=awxweb postgres_data_dir=/tmp/pgdocker host_port=80 host_port_ssl=443 docker_compose_dir=/tmp/awxcompose pg_username=awx pg_password=awxpass pg_database=awx pg_port=5432 admin_user=admin admin_password=adminpassword create_preload_data=True secret_key=2fCkx2K5GnIjBz4OterhOC3ey0WPdj
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, exécutez le playbook pour installer Ansible AWX avec la commande suivante :
ansible-playbook -i inventory install.yml
Une fois Ansible AWX installé, vous devriez obtenir le résultat suivant :
TASK [local_docker : Create Docker Compose Configuration] ************************************************************************************* changed: [localhost] => (item={u'mode': u'0600', u'file': u'environment.sh'}) changed: [localhost] => (item={u'mode': u'0600', u'file': u'credentials.py'}) changed: [localhost] => (item={u'mode': u'0600', u'file': u'docker-compose.yml'}) changed: [localhost] => (item={u'mode': u'0600', u'file': u'nginx.conf'}) changed: [localhost] => (item={u'mode': u'0664', u'file': u'redis.conf'}) TASK [local_docker : Render SECRET_KEY file] ************************************************************************************************** changed: [localhost] TASK [local_docker : Start the containers] **************************************************************************************************** changed: [localhost] TASK [local_docker : Update CA trust in awx_web container] ************************************************************************************ changed: [localhost] TASK [local_docker : Update CA trust in awx_task container] *********************************************************************************** changed: [localhost] PLAY RECAP ************************************************************************************************************************************ localhost : ok=15 changed=7 unreachable=0 failed=0 skipped=86 rescued=0 ignored=0
Ensuite, vous pouvez vérifier la liste des conteneurs en cours d'exécution à l'aide de la commande suivante :
docker ps
Vous devriez obtenir le résultat suivant :
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 167d008ee26f ansible/awx:14.1.0 "/usr/bin/tini -- /u…" About a minute ago Up About a minute 8052/tcp awx_task 260c028bf07d ansible/awx:14.1.0 "/usr/bin/tini -- /b…" About a minute ago Up About a minute 0.0.0.0:80->8052/tcp awx_web e15d5ee1c940 postgres:10 "docker-entrypoint.s…" About a minute ago Up About a minute 5432/tcp awx_postgres 6472ee690066 redis "docker-entrypoint.s…" About a minute ago Up About a minute 6379/tcp awx_redis
Étape 5 - Accéder au tableau de bord Ansible AWX
Maintenant, ouvrez votre navigateur Web et accédez au tableau de bord Ansible AWX à l'aide de l'URL http://your-server-ip . Vous serez redirigé vers la page de connexion AWX :
Fournissez votre nom d'utilisateur et votre mot de passe d'administrateur que vous avez définis dans le fichier d'inventaire et cliquez sur le bouton SIGN EN bouton. Vous devriez voir le tableau de bord Ansible AWX sur la page suivante :
Conclusion
Toutes nos félicitations! Vous avez installé avec succès Ansible AWX avec Docker sur Debian 10. Vous pouvez désormais contrôler facilement l'inventaire Ansible, les secrets, les playbooks, etc. depuis le tableau de bord AWX; essayez-le maintenant sur l'hébergement VPS d'Atlantic.Net !