Premiers pas avec Ansible AWX
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
- Un cluster kubernetes avec AWX installé (forcément)
- Un registry docker en local ou pas
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 :
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.
Vérifions que l’image est bien présente dans notre registry :
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 !