4 Commits

Author SHA1 Message Date
84c28ca3f6 Merge branch 'adaptationPlaybookExistantSolution' into solution 2022-04-26 09:45:36 +02:00
910975fd17 solution 2022-04-26 09:40:15 +02:00
b8297efac6 ajout readme 2021-05-06 16:59:16 +02:00
250b199fea solution 2021-03-16 22:14:17 +01:00
4 changed files with 19 additions and 9 deletions

View File

@@ -1,10 +1,7 @@
## Includes et import # Solution (proposition)
**Tâche**: écrire des playbooks modulaires 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.
**Condition**: selon besoin
**Norme**: includes et import
**Préparation**: **Préparation**:
@@ -14,10 +11,18 @@ 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 déterminez de quelle manière ce playbook a été adapté pour fonctionner aussi
bien sur une CentOS qu'une Debian. 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. La tâche "conf httpd" ne fonctionnera pas sur Debian. Pourquoi ? Proposez une solution.
Ce playbook n'est pas complet. Déterminez les éléments manquants et corrigez. Le nom du groupe est différent, il faut en faire une variable
** Validation: ** Validation:
le playbook s'exécute correctement sur la machine debian le playbook s'exécute correctement sur la machine debian

View File

@@ -9,6 +9,9 @@
tasks: tasks:
- name: import OS variables
include_vars: "{{ ansible_distribution | lower }}.yml"
- name: install apache - name: install apache
package: package:
name: "{{ apache_package_name }}" name: "{{ apache_package_name }}"
@@ -20,7 +23,7 @@
dest: "{{ apache_config_dir}}/vhost.conf" dest: "{{ apache_config_dir}}/vhost.conf"
mode: 0640 mode: 0640
owner: root owner: root
group: apache group: "{{ apache_group_name }}"
notify: restart apache notify: restart apache
- name: activate apache - name: activate apache
@@ -69,4 +72,4 @@
template: template:
src: index.txt src: index.txt
dest: /var/www/html/example.org/index.html dest: /var/www/html/example.org/index.html
mode: 0644 mode: 0644

View File

@@ -3,3 +3,4 @@ apache_service_name: httpd
apache_package_name: httpd apache_package_name: httpd
apache_config_dir: /etc/httpd/conf.d apache_config_dir: /etc/httpd/conf.d
apache_log_dir: /var/log/httpd apache_log_dir: /var/log/httpd
apache_group_name: apache

View File

@@ -3,3 +3,4 @@ apache_service_name: apache2
apache_package_name: apache2 apache_package_name: apache2
apache_config_dir: /etc/apache2/sites-enabled/ apache_config_dir: /etc/apache2/sites-enabled/
apache_log_dir: /var/log/apache2 apache_log_dir: /var/log/apache2
apache_group_name: www-data