1.2 KiB
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