Création de votre premier playbook
Commençons par créer un simple playbook Ansible qui créera un répertoire et un fichier sur la machine locale. Cela vous aidera à comprendre la structure de base d'un playbook et à savoir comment l'exécuter.
Tout d'abord, créons un nouveau fichier nommé first_playbook.yml
dans le répertoire /home/labex/project
:
nano /home/labex/project/first_playbook.yml
Cette commande ouvre l'éditeur de texte nano. Si vous n'êtes pas familier avec nano, ne vous inquiétez pas - c'est un éditeur de texte simple. Vous pouvez taper directement dedans.
Maintenant, ajoutez le contenu suivant au fichier :
---
- name: My First Playbook
hosts: localhost
connection: local
tasks:
- name: Create a directory
file:
path: /home/labex/project/test_directory
state: directory
mode: "0755"
- name: Create a file
copy:
content: "Hello from Ansible!"
dest: /home/labex/project/test_directory/hello.txt
Décortiquons ce playbook pour comprendre chaque partie :
- Le
---
en haut marque le début d'un fichier YAML. YAML est le format utilisé pour les playbooks Ansible.
name: My First Playbook
est un nom descriptif pour cette série de tâches (play). Il vous aide à identifier ce que fait ce playbook.
hosts: localhost
spécifie que ce playbook sera exécuté sur la machine locale. Dans un scénario réel, vous pourriez spécifier des hôtes distants ici.
connection: local
indique à Ansible d'exécuter le playbook localement au lieu d'utiliser SSH. Cela est utile pour les tests et pour les tâches qui doivent être effectuées sur le nœud de contrôle Ansible lui-même.
tasks:
est suivi d'une liste de tâches à exécuter. Chaque tâche est une action que vous souhaitez que Ansible effectue.
- Chaque tâche a un
name
pour la description. Cela vous aide à comprendre ce que chaque tâche fait et facilite la résolution des problèmes.
- Les tâches utilisent des modules Ansible :
- Le module
file
est utilisé pour créer le répertoire.
- Le module
copy
est utilisé pour créer un fichier avec un contenu spécifique.
Ne vous inquiétez pas si vous ne comprenez pas tous les modules pour l'instant. Au fur et à mesure que vous progresserez, vous apprendrez à connaître de nombreux autres modules et leurs utilisations.
Enregistrez et quittez l'éditeur. Dans nano, vous pouvez le faire en appuyant sur Ctrl+X
, puis Y
, puis Enter
.
Maintenant, exécutons ce playbook. Dans votre terminal, tapez :
ansible-playbook /home/labex/project/first_playbook.yml
Cette commande indique à Ansible d'exécuter le playbook que nous venons de créer. Vous devriez voir une sortie similaire à celle-ci :
PLAY [My First Playbook] ******************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Create a directory] ******************************************************
changed: [localhost]
TASK [Create a file] ***********************************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Cette sortie montre qu'Ansible a exécuté nos tâches avec succès. Le statut "changed" indique qu'Ansible a apporté des modifications au système (créé un répertoire et un fichier).
Si vous souhaitez vérifier les résultats manuellement, vous pouvez utiliser ces commandes :
ls -l /home/labex/project/test_directory
cat /home/labex/project/test_directory/hello.txt
La première commande devrait afficher le répertoire que nous avons créé, et la deuxième devrait afficher le contenu du fichier que nous avons créé.