--- # CE RÔLE MARQUE UNE FORGE ; IL N'EN INSTALLE PAS. # # Il présuppose `serveur_forgejo` sur le même hôte et lit ses variables. Le message qu'on # obtiendrait sans lui — « variable non définie » — envoie chercher une faute de frappe # alors que la cause est une déclaration incomplète, un cran au-dessus. On le dit donc # nous-mêmes, et en premier. - name: Le rôle qui installe la forge est-il bien là ? ansible.builtin.assert: that: - serveur_forge_site_port is defined - serveur_forge_site_port | int > 0 fail_msg: >- `serveur_forge_site` marque une forge existante, il n'en installe aucune. Cet hôte doit AUSSI porter `serveur_forgejo`. Ajouter les deux rôles à sa déclaration, dans cet ordre. # ÉCRIRE, PUIS RELIRE (D-68). Le rôle n'installe rien : sa seule prise sur le réel est de # vérifier que le service qu'il désigne existe vraiment. Sans ça, il attribuerait # l'autorité du génome à un port que personne n'écoute — et l'écosystème qui viendrait # s'y reproduire attendrait sans savoir pourquoi. C'est précisément ce qui est arrivé le # 2026-08-28 : `ops-01` a attendu quinze minutes sur un clonage qui ne pouvait pas # aboutir. - name: La forge écoute-t-elle vraiment ? ansible.builtin.wait_for: host: "127.0.0.1" port: "{{ serveur_forge_site_port }}" timeout: 30 when: not ansible_check_mode # LE ROLE QUI POSSEDE LA VERITE DEPOSE SA PROPRE SONDE. `client_sante` la fait tourner et # pousse le resultat. # # `wait_for` ci-dessus verifie que la forge ECOUTE, une fois, au deploiement. La sonde # verifie qu'elle a QUELQUE CHOSE A SERVIR, toutes les quinze minutes. Le 2026-09-14 a # montre que la premiere n'implique pas la seconde. - name: Assurer le repertoire des sondes de supervision ansible.builtin.file: path: /usr/local/lib/setops/sondes state: directory owner: root group: root mode: "0755" - name: Deposer la sonde « genome-servi » ansible.builtin.template: src: sonde-genome-servi.sh.j2 dest: /usr/local/lib/setops/sondes/genome-servi.sh owner: root group: root mode: "0750"