Aligne sur la convention serveur_* de tous les rôles de service (vars incluses). Le modèle presence-web (pré-existant) utilisait déjà ces noms -> il colle enfin. Aussi : serveur_web_dorsal ne chown plus le code (reste root, lecture seule pour l'app = plus sûr + git idempotent, fini le 'propriété douteuse' au pull). Idempotence prouvée (2e passage changed=0). lint production. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
56 lines
1.5 KiB
YAML
56 lines
1.5 KiB
YAML
---
|
|
- name: Installer nginx + git (git requis pour cloner les depots des sites)
|
|
ansible.builtin.apt:
|
|
name:
|
|
- nginx
|
|
- git
|
|
state: present
|
|
update_cache: true
|
|
cache_valid_time: 3600
|
|
|
|
- name: Retirer le vhost nginx par defaut
|
|
ansible.builtin.file:
|
|
path: /etc/nginx/sites-enabled/default
|
|
state: absent
|
|
notify: Recharger nginx serveur_web_frontal
|
|
|
|
- name: Creer la racine des sites
|
|
ansible.builtin.file:
|
|
path: "{{ serveur_web_frontal_racine_base }}"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: "0755"
|
|
|
|
- name: Cloner / mettre a jour le depot de chaque site (clone superficiel, contenu courant)
|
|
ansible.builtin.git:
|
|
repo: "{{ item.depot }}"
|
|
dest: "{{ serveur_web_frontal_racine_base }}/{{ item.nom }}"
|
|
version: "{{ item.branche | default('main') }}"
|
|
depth: 1
|
|
force: true
|
|
loop: "{{ serveur_web_frontal_sites }}"
|
|
loop_control:
|
|
label: "{{ item.nom }}"
|
|
|
|
- name: Deployer le vhost de chaque site
|
|
ansible.builtin.template:
|
|
src: site.conf.j2
|
|
dest: "/etc/nginx/sites-available/{{ item.nom }}"
|
|
owner: root
|
|
group: root
|
|
mode: "0644"
|
|
loop: "{{ serveur_web_frontal_sites }}"
|
|
loop_control:
|
|
label: "{{ item.nom }}"
|
|
notify: Recharger nginx serveur_web_frontal
|
|
|
|
- name: Activer le vhost de chaque site
|
|
ansible.builtin.file:
|
|
src: "/etc/nginx/sites-available/{{ item.nom }}"
|
|
dest: "/etc/nginx/sites-enabled/{{ item.nom }}"
|
|
state: link
|
|
loop: "{{ serveur_web_frontal_sites }}"
|
|
loop_control:
|
|
label: "{{ item.nom }}"
|
|
notify: Recharger nginx serveur_web_frontal
|