Quatre meta/empreinte.yml declaraient leurs valeurs A LA RACINE, sans la cle
`setops_empreinte:` : collabora, nextcloud, web_dorsal, web_frontal. Le lecteur
les voyait vides et rendait {0,0,0} — en silence. collab-01 s'est retrouvee avec
1 coeur / 1 Go pour porter Nextcloud ET Collabora, et a cesse de repondre en SSH
faute de memoire. Corrigee : 4c/5632Mo. Une garde refuse desormais cette forme.
Un fichier qui existe mais ne dit rien est pire qu'un fichier absent : le repli
aurait donne des valeurs sensees.
Deux courses de premier demarrage :
- le clone rend la main avant que son .conf existe -> attente active sur l'API ;
- le verrou dpkg frappait hors de `common_packages` -> `lock_timeout` pose en
module_defaults sur les 30 playbooks de groupe, une declaration au lieu de 30.
Au passage, j'ai failli livrer pire que le defaut : une URL coupee avec `>-`
inserait une ESPACE en son milieu. Le lint passait, la requete non.
Enfin : `proxmox_kvm` identifie une VM par son NOM. Une VM heritee homonyme lui
a fait rapporter `ok` sans rien cloner — un deploiement peut donc PARAITRE
reussi alors qu'aucune VM n'existe. Touche D-37 directement.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| defaults | ||
| handlers | ||
| meta | ||
| tasks | ||
| templates | ||
| README.md | ||
serveur_web_frontal
Hébergement de sites web statiques (nginx), derrière l'edge. Première brique de la plateforme webapp de Set-OPS : 100 % natif — pas de conteneur, pas de runtime, pas de base de données. Le contenu vient d'un dépôt git souverain (Forgejo). Codifié depuis le spike du 2026-07-05 (site Alliance Boréale).
Ce que le rôle fait
Pour chaque site déclaré dans serveur_web_frontal_sites :
git clone/pulldu dépôt →/srv/web/<nom>;- vhost nginx servant
<sous_dossier>(ex.public/), avec en-têtes de sécurité- CSP (défaut :
selfonly, aucun tiers, aucun pistage), gzip, cache,try_files.
- CSP (défaut :
Exposé via applications.yml (champ expose) → l'edge proxie en HTTPS (TLS step-ca).
Les SAN du cert edge et le plancher /etc/hosts sont auto-dérivés du plan.
Déclaration (group_vars du groupe serveur_web_frontal)
serveur_web_frontal_sites:
- nom: alliance
server_name: "alliance-boreale.{{ domaine_interne }}"
depot: "https://forge.{{ domaine_interne }}/alliance/site-alliance-boreale.git"
branche: main
sous_dossier: public
# csp: "..." # optionnel, sinon serveur_web_frontal_csp_defaut
Et dans applications.yml : une app groupe: serveur_web_frontal, hote: <noeud>, port: 80, expose: [alliance-boreale.<domaine>].
Portée
Statique seulement (le frontal). Les apps dynamiques (runtime + service systemd + BD via resoudre_base) relèveront d'un rôle dorsal à venir — même éthos : natif, systemd, zéro conteneur.
Validation
ansible-lint profil production + --syntax-check. Éprouvé sur web-frontal-01
(site servi via l'edge, HTTPS step-ca vérifié, CSP en place).