Merge branch 'adaptationPlaybookExistantSolution' into solution
This commit is contained in:
33
Readme.md
33
Readme.md
@@ -3,15 +3,26 @@
|
||||
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.
|
||||
|
||||
|
||||
Autre cas d'utilisation des includes:
|
||||
**Préparation**:
|
||||
|
||||
```yaml
|
||||
- name: ensure bootstrap role has been applied
|
||||
include_role:
|
||||
name: bootstrap
|
||||
when: apply_bootstrap_role
|
||||
- include: bash.yml
|
||||
tags: bash
|
||||
- include: local_repo.yml
|
||||
when: ansible_distribution=='CentOS' and use_local_repo
|
||||
```
|
||||
** 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
|
||||
|
||||
Reference in New Issue
Block a user