Compare commits

4 Commits

Author SHA1 Message Date
14662a811a solution abr 2023-09-21 09:48:05 +02:00
68929bc91d tp abr 2023-09-21 09:47:20 +02:00
47b37fbcc8 typo 2022-04-26 09:40:38 +02:00
1456280ca8 variante on etudie et adapte un playbook existant 2022-04-26 09:34:53 +02:00
4 changed files with 85 additions and 13 deletions

View File

@@ -10,14 +10,22 @@
** Pratique **
Adapter le playbook apache.yml pour qu'il fonctionne sur la machine _debian_:
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
1. identifiez les différences entre OS (nom des packages, des services, répertoires différents, ...)
2. essayez de trouver une solution permettant de gérer ses différences.
** Validation:
le playbook s'exécute correctement sur la machine debian
Chaque cible héberge plusieurs sites différents.
Proposition de solution: voir la branche "solution"
```bash
curl debian1
<span style="text-align: center;background-color: #FD5401; font-size: 42px;">Hello World</span>
```

View File

@@ -1,15 +1,62 @@
---
- name: install apache via ansible playbook
hosts: centos
hosts: all
handlers:
- name: restart apache
service:
name: "{{ apache_service_name }}"
state: restarted
tasks:
- name: read OS var file
include_vars: "{{ ansible_os_family | lower }}.yml"
- name: install apache
yum:
name: httpd
state: present
package:
name: "{{ apache_package_name }}"
state: latest
- name: conf httpd
template:
src: vhost.conf
dest: "{{ apache_config_dir }}/vhost.conf"
mode: 0640
owner: root
group: "{{ apache_group }}"
notify: restart apache
- name: delete defaultconf on debian
file:
path: "{{ apache_config_dir }}/000-default.conf"
state: absent
notify: restart apache
when: ansible_os_family == 'Debian'
- name: call handlers, if needed
ansible.builtin.meta: flush_handlers
- name: activate apache
service:
name: httpd
name: "{{ apache_service_name }}"
enabled: yes
state: started
state: started
- name: open firewall port
firewalld:
service: http
permanent: yes
immediate: yes
state: enabled
ignore_errors: yes
when: ansible_os_family=='RedHat'
- name: create documentroot
file:
name: /var/www/html/example.org
state: directory
- name: create index file
copy:
src: index.txt
dest: /var/www/html/example.org/index.html
mode: 0644

9
debian.yml Normal file
View File

@@ -0,0 +1,9 @@
#/home/formation/sib_12_handlers/debian.yml
---
apache_service_name: apache2
apache_package_name: apache2
apache_user: www-data
apache_group: www-data
apache_config_dir: /etc/apache2/sites-enabled/
apache_log_dir: /var/log/apache2/

8
redhat.yml Normal file
View File

@@ -0,0 +1,8 @@
#/home/formation/sib_12_handlers/redhat.yml
---
apache_service_name: httpd
apache_package_name: httpd
apache_user: apache
apache_group: apache
apache_config_dir: /etc/httpd/conf.d/
apache_log_dir: /var/log/httpd/