Développer notre rôle
Maintenant que nous avons une structure de rôle de base, développons - la pour inclure plus de composants d'un rôle Ansible typique. Nous allons ajouter des variables, un gestionnaire (handler) et un modèle (template).
Tout d'abord, ajoutons une variable par défaut. Créez un fichier main.yml
dans le répertoire defaults
:
nano defaults/main.yml
Ajoutez le contenu suivant :
---
example_variable: "This is a default value"
Cela définit une valeur par défaut pour example_variable
, qui peut être remplacée lorsque le rôle est utilisé.
Ensuite, créons un gestionnaire (handler). Créez un fichier main.yml
dans le répertoire handlers
:
nano handlers/main.yml
Ajoutez le contenu suivant :
---
- name: Restart example service
debug:
msg: "This would restart a service in a real scenario"
Dans un scénario réel, ce gestionnaire pourrait redémarrer un service, mais pour cet exemple, nous imprimons simplement un message.
Maintenant, créons un modèle (template). Créez un fichier nommé example_template.j2
dans le répertoire templates
:
nano templates/example_template.j2
Ajoutez le contenu suivant :
This is an example template.
The value of example_variable is: {{ example_variable }}
Ce modèle utilise la syntaxe Jinja2 pour inclure la valeur de notre example_variable
.
Enfin, mettons à jour notre fichier tasks/main.yml
pour utiliser ces nouveaux composants :
nano tasks/main.yml
Remplacez le contenu existant par :
---
- name: Print a message
debug:
msg: "This is a task from our example role!"
- name: Use our variable
debug:
msg: "The value of example_variable is: {{ example_variable }}"
- name: Create a file from our template
template:
src: example_template.j2
dest: /tmp/example_file.txt
notify: Restart example service
Cette liste de tâches mise à jour utilise maintenant notre variable, crée un fichier à partir de notre modèle et notifie notre gestionnaire.