---
- 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
- name: Deployer les sites reverse proxy declares a la main
src: site.conf.j2
dest: "/etc/nginx/sites-available/{{ item.nom }}.conf"
loop: "{{ serveurs_nginx_sites }}"
loop_control:
label: "{{ item.nom }}"
- name: Activer les sites reverse proxy declares a la main
src: "/etc/nginx/sites-available/{{ item.nom }}.conf"
dest: "/etc/nginx/sites-enabled/{{ item.nom }}.conf"
state: link
# --- 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 }}
- name: Deployer les vhosts derives des expositions web
src: expositions.conf.j2
dest: /etc/nginx/sites-available/expositions.conf
- name: Activer les vhosts derives des expositions web
src: /etc/nginx/sites-available/expositions.conf
dest: /etc/nginx/sites-enabled/expositions.conf
- name: Activer et demarrer nginx
ansible.builtin.systemd:
name: "{{ serveurs_nginx_service_name }}"
enabled: true
state: started