--- # 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