This repository has been archived on 2026-06-26. You can view files and clone it, but cannot push or open issues or pull requests.
Set-OPS/playbooks/groupes/serveur_web_frontal.yml
Daniel Allaire 17f65efb18 Decouplage moteur/instance Phase 2a : sortir le plan
Les 5 registres (serveurs/applications/bases-donnees/domaines/nomenclature)
quittent docs/ pour instance/plan/. Localisation :
- scripts : variable d'env SETOPS_INSTANCE (defaut <depot>/instance) ;
- roles/playbooks : variable setops_plan_dir (group_vars d'instance).

docs/ ne garde que les guides .md + dependances-groupes.yml (moteur).
.ansible-lint exclut instance/plan/ (registres de donnees).

Non destructif : diff vide, ansible-lint 0 echec, include_vars via
setops_plan_dir teste. (Phase 2b : l'inventaire.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 09:10:49 -04:00

43 lines
1.8 KiB
YAML

---
- name: Appliquer le groupe serveur_web_frontal
hosts: serveur_web_frontal
become: true
gather_facts: true
pre_tasks:
- name: Vérifier que la cible est Debian
ansible.builtin.assert:
that:
- ansible_facts.distribution == "Debian"
fail_msg: "Ce playbook est prévu pour Debian."
tasks:
# Couche presentation : une VM frontale peut porter PLUSIEURS applications.
# On itere sur les applications mappees a cet hote (docs/applications.yml),
# chacune resolvant ses bases via son DSN (regle partagee, filter plugin).
- name: Charger les registres applications et bases
ansible.builtin.include_vars:
file: "{{ item }}"
loop:
- "{{ setops_plan_dir }}/applications.yml"
- "{{ setops_plan_dir }}/bases-donnees.yml"
- name: Determiner les applications instanciees sur cet hote
ansible.builtin.set_fact:
applications_hote: "{{ {'applications': applications | default({})} | applications_de_hote(inventory_hostname) }}"
registre_bd: "{{ {'serveurs_bd': serveurs_bd | default({}), 'bases_donnees': bases_donnees | default({})} }}"
- name: Afficher la chaine application -> bases (scaffold ; le deploiement reel s'insere ici)
ansible.builtin.debug:
msg: >-
{{ item.id }} [{{ item.groupe }}] ->
{{ (registre_bd | bases_de_application(item.id, item.groupe, inventory_hostname))
| map(attribute='cle') | list }}
loop: "{{ applications_hote }}"
loop_control:
label: "{{ item.id }}"
- name: Avertir si l'hote ne porte aucune application
ansible.builtin.debug:
msg: "Aucune application declaree sur cet hote (docs/applications.yml). Couche presentation, derriere serveur_nginx."
when: applications_hote | length == 0