L'epreuve du colis sur le runner de Technolibre : git bundle verify exige un depot existant, et l'insemination est le cas ou il n'existe pas encore. Le clone verifie le colis lui-meme ; un depot existant le verifie avant de tirer. Les colis restes d'un passage interrompu sont retires. make forge-cles rend aussi chaque depot prive ou public selon le role que lui donne le plan du site, et seulement une fois les cles de lecture en place. 95 preuves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 lines
2.1 KiB
YAML
43 lines
2.1 KiB
YAML
---
|
|
# LE SITE ENREGISTRE LA CLE DE LECTURE DE CHAQUE LOCATAIRE SUR SON DEPOT (2026-10-11).
|
|
#
|
|
# Voir `docs/depots-prives-conception.md` et `scripts/forge_cles.py`. Le script tourne SUR le
|
|
# runner du site : il y lit les faces que le site tire (et rien d'autre 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-cles montre ce qui serait fait
|
|
# make forge-cles CONFIRMER=true l'ecrit, puis relit
|
|
- name: Les cles de lecture des locataires, sur la forge du site
|
|
hosts: serveur_ops_site
|
|
gather_facts: false
|
|
become: true
|
|
become_user: "{{ serveur_ops_utilisateur | default('setops') }}"
|
|
vars:
|
|
forge_cles_racine: "{{ serveur_ops_racine | default('/opt/setops') }}"
|
|
forge_cles_moteur: "{{ (serveur_ops_depots | selectattr('role', 'eq', 'moteur') | first).dest }}"
|
|
forge_cles_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 les faces aux cles de la forge
|
|
ansible.builtin.command:
|
|
argv: "{{ ['python3', 'scripts/forge_cles.py']
|
|
+ (['--confirmer'] if (forge_cles_confirmer | bool) else []) }}"
|
|
chdir: "{{ forge_cles_racine }}/{{ forge_cles_moteur }}"
|
|
environment:
|
|
FORGEJO_ADMIN: "{{ vault_forgejo_admin }}"
|
|
PATH: "{{ forge_cles_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_cles
|
|
changed_when: "'ajoutee' in forge_cles.stdout or 'retiree' in forge_cles.stdout or 'rendu ' in forge_cles.stdout"
|
|
failed_when: forge_cles.rc not in [0]
|
|
|
|
- name: Ce que la forge porte
|
|
ansible.builtin.debug:
|
|
msg: "{{ forge_cles.stdout_lines }}"
|