29 lines
1.2 KiB
Markdown
29 lines
1.2 KiB
Markdown
# Solution (proposition)
|
|
|
|
Plutôt que de conditionner chaque tâche en fonction de la distribution (ce qui sera pénible et difficile à maintenir), la solution consistant à inclure un fichier de variables propre à chaque OS cible est plus élégante.
|
|
|
|
|
|
**Préparation**:
|
|
|
|
** Pratique **
|
|
|
|
En examinant les différents fichiers présents dans ce dépôt, essayez de
|
|
déterminez de quelle manière ce playbook a été adapté pour fonctionner aussi
|
|
bien sur une CentOS qu'une Debian.
|
|
|
|
L'idée est de transformer en variables toutes les spécificités de chaque distribution (nom
|
|
du paquet, du service, de l'utilisateur dédié au service, du répertoire de conf ...) et de définir ces variables dans des fichiers dont le nom correspond à la distribution cible.
|
|
|
|
Il suffit de faire ensuite un include de ces fichiers en construisant le nom du fichier autour de la variable "ansible_distribution"
|
|
|
|
L'exécution du block de tâches "firewalld", spécifique à CentOS est conditionné à cette distribution via la clause "when"
|
|
|
|
La tâche "conf httpd" ne fonctionnera pas sur Debian. Pourquoi ? Proposez une solution.
|
|
|
|
Le nom du groupe est différent, il faut en faire une variable
|
|
|
|
|
|
** Validation:
|
|
|
|
le playbook s'exécute correctement sur la machine debian
|