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/roles/serveurs_nginx/tasks/main.yml
Daniel Allaire 92762d3c38 Generer les vhosts nginx depuis le registre d'exposition
serveurs_nginx derive ses vhosts de docs/domaines.yml (bloc exposition) :
pour chaque exposition web ciblant cet edge, un server block est genere
(expositions.conf.j2). Amont = entree 'amont' explicite, sinon
http://<IP interne de la cible>:<port> resolu depuis l'inventaire. Une
exposition non resolvable (cible sans hote actif, ou sans port) est listee
mais non publiee.

- defaults : serveurs_nginx_groupe (edge cible), serveurs_nginx_publier_expositions.
- Les sites declares a la main coexistent.
- Ajout du port 3000 a l'exposition forge.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 13:38:12 -04:00

84 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 du registre partage docs/domaines.yml (bloc exposition) ---
- name: Charger le registre des domaines publics
ansible.builtin.include_vars:
file: "{{ 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: >-
{{ (domaines_publics | default({})) | dict2items
| selectattr('value.edge', 'defined')
| selectattr('value.edge', 'equalto', serveurs_nginx_groupe)
| subelements('value.exposition', skip_missing=true) | list }}
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