Compare commits

1 Commits

Author SHA1 Message Date
47b37fbcc8 typo 2022-04-26 09:40:38 +02:00
4 changed files with 9 additions and 21 deletions

View File

@@ -1,7 +1,10 @@
# Solution (proposition) ## Includes et import
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. **Tâche**: écrire des playbooks modulaires
**Condition**: selon besoin
**Norme**: includes et import
**Préparation**: **Préparation**:
@@ -11,17 +14,9 @@ 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.
Le nom du groupe est différent, il faut en faire une variable Ce playbook n'est pas complet. Déterminez les éléments manquants et corrigez.
** Validation: ** Validation:

View File

@@ -9,9 +9,6 @@
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 }}"
@@ -23,7 +20,7 @@
dest: "{{ apache_config_dir}}/vhost.conf" dest: "{{ apache_config_dir}}/vhost.conf"
mode: 0640 mode: 0640
owner: root owner: root
group: "{{ apache_group_name }}" group: apache
notify: restart apache notify: restart apache
- name: activate apache - name: activate apache
@@ -60,8 +57,6 @@
immediate: yes immediate: yes
state: enabled state: enabled
ignore_errors: true ignore_errors: true
when: ansible_distribution == 'CentOS'
- name: create documentroot - name: create documentroot
file: file:

View File

@@ -3,4 +3,3 @@ 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,4 +3,3 @@ 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