Aller au contenu principal

Premiers pas avec Ansible AWX

· 5 minutes de lecture
Stéphane ROBERT
Consultant DevOps

Maintenant que nous avons installé AWX sur notre cluster Kubernetes, voyons comment l'utiliser. Nous allons tout simplement voir comment créer les hosts, les inventaires, les crédentials, un projet, un environnement d'exécution et lancer un job s'appuyant sur un playbook du projet.

Prérequis à la démonstration

Mise en place du projet de démonstration

Pour démarrer rapidement je vous ai préparé un petit projet sur github à cette adresse : https://github.com/stephrobert/test-awx

Cloner le projet :

git clone https://github.com/stephrobert/test-awx.git

Si vous avez manqué le billet sur les environnements d'exécution d'Ansible je vous renvoie à sa lecture avant de passer à la suite.

Vous êtes prêt ? Oui alors, lançons le build de notre environnement d'exécution qui contient les collections suivantes (requirements.yml) :

  • community.general
  • kubernetes.core
  • ansible.posix

et le modules python kubernetes (requirements.txt)

Changer le nom de l'image avec l'adresse de votre registry. J'ai fait simple, je l'ai installé dans le cluster kubernetes.

ansible-builder build --tag=devbox2.robert.local:31320/my-custom-ee:1.0.0

docker push devbox2.robert.local:31320/my-custom-ee:1.0.0

Vérifions que l'image est bien présente dans notre registry :

curl https://devbox2.robert.local:31320/v2/_catalog
{"repositories":["my-custom-ee"]}

C'est tout qu'il y a à faire.

Création de l'environnement d'exécution sur AWX

Il suffit de se rendre dans le menu Administration / Environnements d'exécution. Cliquez sur [Ajouter] puis renseigner les valeurs :

  • Nom : kubernetes-EE
  • Image : devbox2.robert.local:31320/my-custom-ee:1.0.0

Pour finir, cliquer sur [Enregistrer].

Création des crédentials

Récupérer votre clé privé SSH (pas le .pub) qui est déclaré sur l'ensemble des Hosts cibles de vos playbooks et copiez là.

Dans le menu Ressources / informations d'identification cliquez sur [Ajouter] :

  • Nom : SSH-kubernetes
  • Type d'informations d'identification : Machine
  • Nom d'utilisateur : Le user qui porte la clé SSH, moi malade que je suis j'ai mis root
  • Clé Privé SSH : Coller le contenu de votre clé privée
  • Si vous mis une paraphrase alors ajoutez la
  • Méthode d'esclade : sudo

Cliquer sur [Enregistrer].

Création des inventaires / hôtes

Dans le menu Ressources / Inventaires, cliquez sur [Ajouter] un inventaire simple puis renseigner les valeurs :

  • Nom : cluster-kubernetes
  • Organisation : Défaut

Pour finir, cliquer sur [Enregistrer].

Cliquer maintenant sur [Hôtes] dans la partie détail de l'inventaire. Puis sur [Ajouter] et entrez le nom de votre Host cible et cliquer sur [Enregistrer]. Puis [retour aux hôtes].

Pour tester nous allons lancer un module Ansible. Cliquez sur [Exécuter Commande] :

  • Modules : setup puis [Suivant]
  • Environnement d'Exécution : kubernetes-EE puis [Suivant]
  • Information d'identification : SSH-kubernetes puis [Suivant]
  • [Lancer]

Normalement vous basculez dans le menu Affichages / Jobs. Au bout d'un instant le job devrait se terminer avec succès et vous devriez voir les facts.

Ajout d'un projet Git

Nous allons ajouter le projet que je vous ai préparé. Dans le menu Ressources / Projets cliquez sur [Ajouter] :

  • Nom : get-running-pods
  • Environnement d'Execution : kubernetes-EE
  • Type de Contrôle de source : Git
  • Url Contrôle de la source : https://github.com/stephrobert/test-awx.git
  • Branche / Tag : y en a pas

Pour finir, cliquer sur [Enregistrer]. Normalement, il va lancer une synchronisation pour récupérer le projet.

Création d'un Template de Job

Nous allons ajouter un modèle de Job . Dans le menu Ressources / Modèles cliquez sur [Ajouter] un modèle de Job :

  • Nom : Get running Pod
  • Inventaire : cluster-kubernetes
  • Playbook: site.yml
  • Information d'identification : SSH-kubernetes puis le reste par défaut.

Pour finir, cliquer sur [Enregistrer].

Nous allons l'exécuter pour la première fois. Cliquez sur [Lancer]. Comme tout à l'heure nous basculons dans le menu Affichages / Jobs :

Ajouter une programmation d'un Modèle

Les modèles peuvent être schédulé. Dans le menu Ressources / Modèles cliquez sur le modèle créé précédemment, puis dans l'onglet [Programmations] et [Ajouter] :

  • Nom : Get Running Pod Lundi
  • Fuseau Horaire Local : le vôtre
  • Start date/time : par défaut quelques minutes plus tard que l'heure actuelle
  • Fréquence d'exécution : Semaine
  • Exécutez tous les : 1
  • Tels Jours : Lun
  • Fin : Nbre d'occurences
  • Occurences : 2

Nous avons créé la programmation d'un job pour les deux prochains Lundi à une heure précise.

Conclusion

La création et l'utilisation des environnement d'exécution permettent de simplifier énormément la gestion des noeuds master Ansible. Plus besoin d'installer tout sur ces noeuds. En plus, on peut gérer finement la version des modules et de la partie Core d'Ansible.

Je suis sûr que vous avez déjà plein de Uses Cases en tête. La prochaine fois nous verrons :

  • Créer des users
  • Comment créer des Workflows ou Flux d'activité.
  • Mettre en place des Approbations
  • Envoyer des notifications

A la prochaine fois !