2 Commits

Author SHA1 Message Date
tom b8297efac6 ajout readme 2021-05-06 16:59:16 +02:00
tom 250b199fea solution 2021-03-16 22:14:17 +01:00
4 changed files with 34 additions and 26 deletions
+12 -26
View File
@@ -1,31 +1,17 @@
## Includes et import
# Solution (proposition)
**Tâche**: écrire des playbooks modulaires
**Condition**: selon besoin
**Norme**: includes et import
**Préparation**:
** Pratique **
Récupérer la solution de l'atelier handler
Identifier dans le playbook et le fichier vhost.conf toutes les spécificités de RedHat (qui vont empécher le playbook de fonctionner)
Trouver la solution à cette problématique (exécution conditionnelle, variabilisation ...)
Implémenter la solution
Sur la debian, la configuration par défaut entre en conflit avec la notre:
Modifier le playbook pour que le fichier /etc/apache2/sites-enabled/000-default.conf soit supprimé UNIQUEMENT sur la debian, avec redémarrage du service apache si besoin
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.
** Validation:
Autre cas d'utilisation des includes:
```bash
curl debian1
<span style="text-align: center;background-color: #FD5401; font-size: 42px;">Hello World</span>
```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
```
+18
View File
@@ -0,0 +1,18 @@
---
- name: install apache via ansible playbook
hosts: cibles
tasks:
- name: import OS Specific variables
include_vars: "{{ ansible_distribution | lower }}.yml"
- name: install apache
package:
name: "{{ apache_package_name }}"
state: present
- name: activate apache
service:
name: "{{ apache_service_name }}"
enabled: yes
state: started
+2
View File
@@ -0,0 +1,2 @@
apache_package_name: httpd
apache_service_name: httpd
+2
View File
@@ -0,0 +1,2 @@
apache_package_name: apache2
apache_service_name: apache2