Guide Ansible AWX : Utilisation et configuration de base

AWX est une application Web open source qui fournit une interface utilisateur, une API REST et un moteur de tâches pour Ansible. C’est la version open source de la tour Ansible. L’AWX te permet de gérer les playbooks Ansible, les inventaires et de programmer l’exécution de tâches à l’aide de l’interface Web.

Dans ce tutoriel, nous allons te montrer l’utilisation de base de l’Ansible AWX. Tu as donc besoin d’un serveur sur lequel Ansible AWX a déjà été installé. Nous couvrons certaines configurations de base d’Ansible AWX que tu dois connaître, comme la configuration des informations d’identification, les inventaires, la configuration et l’exécution de modèles de tâches, etc. Si Ansible n’est pas encore installé, consulte ce tutoriel: https://www.howtoforge.com/how-to-install-ansible-awx-with-nginx-reverse-proxy-on-ubuntu-1804/.

Conditions préalables

  • 2 ou 3 serveurs
    • 10.5.5.20 ansible-awx
    • 10.5.5.21 lemp
  • Compréhension de base d’Ansible
  • Privilèges de racine

Ce que nous allons faire :

  1. Installation et configuration de l’environnement
  2. Configuration des informations d’identification
  3. Configuration des inventaires
  4. Projets de configuration
  5. Configuration des modèles de travail
  6. Exécuter des travaux

Étape 1 – Installation et configuration de l’environnement

Dans ce tutoriel, nous allons déployer et exécuter le playbook Ansible pour l’installation de base de LEMP en pensant au tableau de bord Ansible AWX.

Nous avons deux serveurs pour l’awx lui-même et la machine cible.

10.5.5.20   ansible-awx
10.5.5.21   lemp

Maintenant, nous allons déployer le playbook en tant qu’utilisateur appelé ‘hakase’ et en utilisant l’authentification SSH basée sur la clé. Assure-toi que tu as déjà configuré l’utilisateur et l’authentification basée sur la clé sur la machine cible ‘lemp’.

Teste en utilisant la commande suivante depuis le serveur‘ansible-awx‘.

su - hakase
ssh [email protected]

Assure-toi que tu es connecté sans mot de passe.

Maintenant, l’utilisateur ‘hakase’ doit avoir le mot de passe root sans mot de passe pour exécuter les tâches.

Sur la machine cible‘lemp‘, exécute la commande sudo comme ci-dessous.

su - hakase
sudo su

Assure-toi que tu as saisi les privilèges de root sans mot de passe.

Tu dois maintenant installer les paquets python sur toutes les machines cibles gérées par Ansible.

sudo apt install python -y

Installe Python

Étape 2 – Configurer les informations d’identification

Tout d’abord, nous devons configurer les informations d’identification Ansible AWX. Elles sont utilisées pour l’authentification lors du lancement et de l’exécution de tâches contre les serveurs gérés, la synchronisation avec les sources d’inventaire et l’importation de projets.

Par défaut, Ansible AWX prend en charge de nombreux justificatifs d’identité, notamment la machine VM via l’authentification SSH, Amazon Web Services, Google Compute Engine, OpenStack, le mot de passe Vault, Source Control, etc.

Pour configurer les informations d’identification, clique sur le menu« Informations d’identification » à gauche et clique sur le bouton « + » à droite.

Configurer les informations d'identification

Saisis maintenant les informations d’identification‘NOM‘ et‘DESCRIPTION‘, puis indique‘TYPE D’IDENTITÉ‘ sur‘Machine‘.

L’identifiant ‘Machine’ te permettra d’utiliser l’authentification SSH pour gérer les serveurs. Il prend en charge les authentifications par mot de passe et par clé.

Pour ce guide, nous utiliserons l’authentification par clé. Donc, tape le nom d’utilisateur et colle les clés privées de cet utilisateur.

authentification par clé

Puis clique sur le bouton‘SAVE‘.

En conséquence, le nouveau type d’identifiant Ansible AWX ‘Machine’ a été créé.

Identités Ansible AWX

Étape 3 – Configurer les inventaires

Les inventaires sont des groupes de serveurs hôtes gérés par Ansible AWX. Les inventaires te permettent de créer un groupe avec plusieurs serveurs hôtes dessus. Et cela facilite la gestion de différents serveurs avec différents environnements.

Pour gérer et approvisionner les serveurs, nous devons créer un nouveau groupe d’inventaire, puis ajouter des serveurs hôtes dans ce groupe d’inventaire.

Pour ajouter un nouvel inventaire, clique sur le menu‘Inventaires‘ à gauche, puis clique sur le bouton ‘+’ et choisis ‘Inventaire’.

Configurer les inventaires AWX

Saisis le‘NOM‘ et la‘DESCRIPTION‘ de l’inventaire, puis clique sur le bouton‘SAVE‘.

Nom et description

Clique maintenant sur l’onglet‘HÔTES‘ et clique sur le bouton ‘+’ pour ajouter de nouveaux hôtes.

hôtes

Saisis le‘NOM DE L’HÔTE‘, la‘DESCRIPTION‘ et les‘VARIABLES‘ avec une configuration supplémentaire pour l’adresse IP de la machine cible ‘ansible_host : 10.5.5.21’.

Nom d'hôte et variables

Clique maintenant sur le bouton‘SAVE‘.

Ensuite, nous devons nous assurer de la configuration des hôtes en vérifiant les hôtes à l’aide de la commande ping.

Retourne dans l’onglet‘HOSTS‘, coche le serveur de noms de tes hôtes et clique sur le bouton‘RUN COMMANDS‘.

Exécuter des commandes

Choisis maintenant le‘MODULE‘ appelé‘ping‘, clique sur le bouton de recherche dans le‘CREDENTIEL MACHINE‘ et‘SELECTIONNE‘ le tien, puis clique sur le bouton‘LAUNCH‘.

Créance de la machine

Tu seras redirigé vers la nouvelle page et voici le résultat.

Résultat de l'exécution du script awx

Un nouvel inventaire a été créé et le serveur de la machine cible y a été ajouté.

Étape 4 – Configurer les projets

Les projets sont représentés comme des Playbooks Ansible sur l’AWX. Ce sont des collections de Playbooks Ansible que nous pouvons gérer par le biais d’un répertoire de projets local ou en utilisant le système SCM tel que Git, Subversion, Mercurial et RedHat Insights.

Pour créer de nouveaux projets, clique sur le menu‘Projets‘ à gauche et clique sur le bouton ‘+’.

Projets AWX

Saisis le‘NOM‘ de ton projet et la‘DESCRIPTION‘, puis choisis le‘TYPE SCM‘ sur‘Git‘ et colle le référentiel de ton livre de jeu.

Nom, description et type de scm

Clique maintenant sur le bouton« SAVE » et un nouveau projet pour le livre de jeu a été créé.

Le projet a été ajouté

En outre :

Si tu veux créer un nouveau projet avec le type SCM‘Manual‘, tu peux créer un nouveau répertoire playbooks situé dans le répertoire‘/var/lib/awx/projects‘.

Le répertoire ‘/var/lib/awx/projects’ est le répertoire de projet par défaut pour tes playbooks Ansible si tu utilises la version docker de AWX avec le‘project_data_dir‘ activé.

Étape 5 – Créer de nouveaux modèles de tâches

Le modèle de tâche est la définition même de l’exécution des playbooks Ansible. Donc, pour créer un nouveau modèle de tâche ou exécuter le modèle de tâche, nous devons ajouter le playbook Ansible de notre ‘Projet’, les ‘Références’ pour l’authentification, et les machines cibles stockées dans les ‘Inventaires’.

Pour ce guide, nous avons déjà créé un nouveau projet, des informations d’identification et un inventaire. Il suffit donc de cliquer sur le menu‘Modèles‘ à gauche, puis de cliquer sur le bouton ‘ +’ et de choisir l’option‘Modèle de travail‘.

Ajouter un modèle de travail

Maintenant, tu dois saisir le‘NOM‘ et la‘DESCRIPTION‘ du travail. Ensuite, choisis l »INVENTAIRE‘, le‘CREDENTIEL‘ et le‘PROJET‘. Et après cela, indique le‘PLAYBOOK‘ que tu veux exécuter et déployer.

Ajoute les détails du projet de travail

Et comme résultat, le nouveau modèle de tâche Ansible AWX a été créé.

Étape 6 – Exécute le Job Template

Après avoir créé le nouveau modèle de tâche, nous allons exécuter le modèle de tâche et déployer les Playbooks ‘Projets’ sur les hôtes cibles de l »Inventaire’.

Clique sur le menu« Modèles » sur la gauche et tu obtiendras la liste des modèles de tâches disponibles.

Exécute le modèle de travail

Une fois que la tâche est terminée, tu verras le signe vert dans le nom du modèle de tâche.

Résultat de l'exécution du modèle

Clique sur le signe vert à l’intérieur du nom du modèle de travail et tu verras le résultat réel de ce travail.

Résultat du travail

La tâche s’est terminée avec succès et la machine cible a été installée avec la pile LEMP via l’Ansible AWX.

Étape 7 – Test de la machine cible

Teste le nom de domaine de la machine cible. La configuration du nom de domaine est stockée dans la configuration‘roles/web/vars/main.yml‘.

Test du serveur cible

Vérifier les services Nginx et PHP-FPM à l’aide des commandes systemctl.

systemctl status nginx
systemctl status php7.2-fpm

Statut de Nginx et de php-fpm

Teste la base de données MySQL sur la machine cible. Configurations détaillées de la base de données MySQL stockées dans le fichier de configuration ‘roles/db/vars/main.yml’.

Statut de MySQL

En conséquence, la pile LEMP a été installée sur la machine cible par le biais de l’AWX d’Ansible.

Référence

Vous aimerez aussi...