La forge nommait infra-mail-01 en dur comme relais : une machine de locataire, absente du site. Elle derive maintenant son relais du groupe serveur_postfix. Le relais du site admet les machines dont un role declare un flux vers lui, lues dans le registre des flux (aujourd'hui la forge). Deploye au site ; un courriel de mot de passe oublie est arrive et a servi. Aussi : forge-comptes ne compte plus de changement en mode plan. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
47 lines
2.4 KiB
YAML
47 lines
2.4 KiB
YAML
---
|
|
# LES COMPTES DE LA FORGE DU SITE (2026-10-11, lot 3b).
|
|
#
|
|
# Voir `docs/depots-prives-conception.md` et `scripts/forge_comptes.py`. Le script tourne SUR le
|
|
# runner du site : il y lit le plan du site (`mainteneurs`) et les faces de ses locataires, et
|
|
# il y joint la forge. Le mot de passe d'administration vient de la voute du site, par
|
|
# l'environnement, et n'est jamais affiche.
|
|
#
|
|
# make forge-comptes montre ce qui serait fait
|
|
# make forge-comptes CONFIRMER=true l'ecrit, puis relit
|
|
- name: Les comptes de la forge du site
|
|
hosts: serveur_ops_site
|
|
gather_facts: false
|
|
become: true
|
|
become_user: "{{ serveur_ops_utilisateur | default('setops') }}"
|
|
vars:
|
|
forge_comptes_racine: "{{ serveur_ops_racine | default('/opt/setops') }}"
|
|
forge_comptes_moteur: "{{ (serveur_ops_depots | selectattr('role', 'eq', 'moteur') | first).dest }}"
|
|
forge_comptes_confirmer: "{{ lookup('env', 'CONFIRMER') == 'true' }}"
|
|
tasks:
|
|
- name: Exiger le mot de passe d'administration de la forge (voute du site)
|
|
ansible.builtin.assert:
|
|
that: vault_forgejo_admin | default('') | length > 0
|
|
fail_msg: "vault_forgejo_admin absent : la voute du site n'est pas chargee."
|
|
no_log: true
|
|
|
|
- name: Confronter le plan du site aux comptes de la forge
|
|
ansible.builtin.command:
|
|
argv: "{{ ['python3', 'scripts/forge_comptes.py']
|
|
+ (['--confirmer'] if (forge_comptes_confirmer | bool) else []) }}"
|
|
chdir: "{{ forge_comptes_racine }}/{{ forge_comptes_moteur }}"
|
|
environment:
|
|
FORGEJO_ADMIN: "{{ vault_forgejo_admin }}"
|
|
PATH: "{{ forge_comptes_racine }}/venv/bin:/usr/local/bin:/usr/bin:/bin"
|
|
# En simulation, le script ne fait que montrer (sans --confirmer) : il peut tourner.
|
|
check_mode: false
|
|
register: forge_comptes
|
|
# LES LIGNES D'ACTION, PAS DES MOTS : « jeton a creer », dans le plan, contient « jeton »
|
|
# et faisait compter un changement alors que rien n'etait ecrit (2026-10-11).
|
|
changed_when: forge_comptes.stdout is search('(?m)^ (cree|collab|retire|equipe|jeton) ')
|
|
# 1 = un ecart DIT (un courriel a remplir, par exemple) : il s'affiche, il n'empeche pas
|
|
# le reste. 2 = le script a refuse de travailler.
|
|
failed_when: forge_comptes.rc not in [0, 1]
|
|
|
|
- name: Ce que la forge porte
|
|
ansible.builtin.debug:
|
|
msg: "{{ forge_comptes.stdout_lines }}"
|