L'application porte tous ses liens (groupe=capacite, hote=VM, port, requiert, expose). L'exposition DNS quitte docs/domaines.yml et vit sur l'application via 'expose' ; domaines.yml ne decrit plus que les zones. - inventory_rules : expositions_des_applications + domaine_parent ; valider_applications valide requiert / expose / port. - serveurs_nginx derive ses vhosts des applications (expose + edge), resolvant application -> hote -> IP (role + template reecrits). - filter plugin : expose la nouvelle regle a Ansible. - CLI : applications.py --port/--requiert/--expose ; domaines.py affiche les expositions derivees des applications. - GUI : champs Port/Requiert/Expose sur la fiche Application (persistes ; corrige la perte de champs a la sauvegarde) ; l'API expose les domaines. Le groupe n'est plus une cible de liaison, seulement une capacite. Renommage nomenclature.domaines -> fonctions : Phase 1b. Generation de l'inventaire depuis le plan : Phase 3. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
85 lines
2.6 KiB
YAML
85 lines
2.6 KiB
YAML
---
|
|
- name: Installer nginx
|
|
ansible.builtin.apt:
|
|
name: "{{ serveurs_nginx_packages }}"
|
|
state: present
|
|
update_cache: true
|
|
cache_valid_time: 3600
|
|
|
|
- name: Deployer le durcissement de base nginx
|
|
ansible.builtin.template:
|
|
src: 99-chezlepro.conf.j2
|
|
dest: /etc/nginx/conf.d/99-chezlepro.conf
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
notify: Valider et recharger nginx
|
|
|
|
- name: Desactiver le site Debian par defaut
|
|
ansible.builtin.file:
|
|
path: /etc/nginx/sites-enabled/default
|
|
state: absent
|
|
when: serveurs_nginx_desactiver_defaut | bool
|
|
notify: Valider et recharger nginx
|
|
|
|
- name: Deployer les sites reverse proxy declares a la main
|
|
ansible.builtin.template:
|
|
src: site.conf.j2
|
|
dest: "/etc/nginx/sites-available/{{ item.nom }}.conf"
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
loop: "{{ serveurs_nginx_sites }}"
|
|
loop_control:
|
|
label: "{{ item.nom }}"
|
|
notify: Valider et recharger nginx
|
|
|
|
- name: Activer les sites reverse proxy declares a la main
|
|
ansible.builtin.file:
|
|
src: "/etc/nginx/sites-available/{{ item.nom }}.conf"
|
|
dest: "/etc/nginx/sites-enabled/{{ item.nom }}.conf"
|
|
state: link
|
|
loop: "{{ serveurs_nginx_sites }}"
|
|
loop_control:
|
|
label: "{{ item.nom }}"
|
|
notify: Valider et recharger nginx
|
|
|
|
# --- Vhosts derives des applications (champ expose) + domaines (edge) ---
|
|
- name: Charger les registres applications et domaines
|
|
ansible.builtin.include_vars:
|
|
file: "{{ item }}"
|
|
loop:
|
|
- "{{ role_path }}/../../docs/applications.yml"
|
|
- "{{ role_path }}/../../docs/domaines.yml"
|
|
when: serveurs_nginx_publier_expositions | bool
|
|
|
|
- name: Lister les expositions destinees a cet edge
|
|
ansible.builtin.set_fact:
|
|
serveurs_nginx_expositions: >-
|
|
{{ {'applications': applications | default({})}
|
|
| expositions_des_applications({'domaines_publics': domaines_publics | default({})}, serveurs_nginx_groupe) }}
|
|
when: serveurs_nginx_publier_expositions | bool
|
|
|
|
- name: Deployer les vhosts derives des expositions web
|
|
ansible.builtin.template:
|
|
src: expositions.conf.j2
|
|
dest: /etc/nginx/sites-available/expositions.conf
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
when: serveurs_nginx_publier_expositions | bool
|
|
notify: Valider et recharger nginx
|
|
|
|
- name: Activer les vhosts derives des expositions web
|
|
ansible.builtin.file:
|
|
src: /etc/nginx/sites-available/expositions.conf
|
|
dest: /etc/nginx/sites-enabled/expositions.conf
|
|
state: link
|
|
when: serveurs_nginx_publier_expositions | bool
|
|
notify: Valider et recharger nginx
|
|
|
|
- name: Activer et demarrer nginx
|
|
ansible.builtin.systemd:
|
|
name: "{{ serveurs_nginx_service_name }}"
|
|
enabled: true
|
|
state: started
|