Comment utiliser Ansible⚓︎
01 - Description⚓︎
Mise en place des environnements de developpement, de test (preproduction) et de déploiement.
02 - Utilisation d'un Playbook⚓︎
Pour exécuter un Playbook vous devez vous rendre sur l'interface web dans le menu CI/CD
puis pipelines
du projet ansible.
Ensuite lors que vous faites Run pipeline
, vous devez renseigner les informations suivantes :
- PLAYBOOK_NAME : c'est le nom du Playbook que vous voulez exécuter et qui se trouve à la racine du projet ;
- ENVIROMENT : Vous avez le choix entre prod (pour une mise en production) ou dev pour tout le reste ;
- VARIABLES : Si votre Playbook a besoin de variables vous devez les renseigner de la forme suivante
var_01=value var_02=value
.
03 - Développement⚓︎
03.1 - Création d'un playbook⚓︎
Votre playbook doit OBLIGATOIREMENT être à la racine du projet avec la forme suivante nom_de_playbook.yml
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
03.2 - Création d'un rôle⚓︎
Pour créer un rôle je vous conseille FORTEMENT d'utiliser la commande suivante (surtout que vous gagnez du temps xD).
Mettez vous dans le dossier roles
puis :
1 |
|
Astuce
Sur votre linux local (ou wsl car windows>linux) vous avec juste à installer ansible pour exécuter la commande (ex. : sudo apt install ansible
)
Ensuite vous devez avoir la structure suivante (ou qui y ressemble) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
a) Defaults et Vars⚓︎
Dans ces dossiers seul le fichier main.yml sera pris en compte avec la structure suivante :
1 2 3 4 |
|
Astuce
Par convention le nom des variables dans votre role doit être précéder du nom du rôle.
b) Tasks⚓︎
Même chose, le main.yml sera le fichier que lira par défaut votre rôle donc si vous voulez avoir plusieurs fichiers pour un rôle propre (pitié faites le ! ) voici la démarche à suivre :
1 2 3 4 5 6 7 8 |
|
Astuce
En générale c'est mieux d'avoir cette architecture avec prerequisites.yml, check_vars.yml et install.yml comme ça c'est plus lisible. D'ailleurs ces fichiers doivent être dans le dossier 'tasks'.
03.3 - Gestion des environnements⚓︎
La gestion des environnements se passe dans le dossier inventories
et ensuite vous avez le nom de l'environnement (ici soit prod
soit dev
).
Puis vous avez le fichier hosts
pour définir vos machines ou groupe de machine de la façon suivante :
1 2 3 4 5 6 |
|
Si vous souhaitez définir des variables pour un host il faut créer un fichier dans group_vars
avec les variables.
Par exemple, nous avons la structure suivante :
1 2 3 4 5 6 |
|
a) Chiffrer des variables⚓︎
Vous pouvez avoir besoin de cacher les valeurs de certaines variables et pour cela vous devez créer un dossier avec le nom de l'host comme au dessus avec le fichier vars contenant toutes vos variables.
Puis en ligne de commande :
1 |
|
Vous allez devoir rentrer un mot de passe (ici demandez moi quoi mettre car il faut avoir le même mdp pour chaque vault pour la pipeline).
Puis vous pouvez mettre vos variables comme pour un fichier classique mais précédé de vault_
:
1 2 3 |
|
Puis dans votre fichier vars
vous aurez :
1 2 3 4 |
|
Si vous devez modifier ou ajouter des valeurs, faites la commande suivante :
1 |
|
03.4 - Conventions⚓︎
- Le nom des variables, fichiers, roles... : en
snake_case
; - La documentation Ansible est vraiment bien donc utilisez là ! Surtout qu'il y a des exemples dans la doc.