Une regle inter-tenant n'appartient ni a l'emetteur ni au recepteur : c'est le site qui autorise un flux entre deux de ses tenants, et son runner qui prepare le terrain. Deux silences fermes dans le generateur de frontiere. flux_frontiere() ne retenait que les flux `externe` -- or deux tenants vivent sur des VLAN routes par la frontiere, leur trafic la traverse. Et un egress vers un voisin recevait !SETOPS_INTERNES en destination : le port ouvert vers l'INTERNET. La destination est desormais nommee. Deux roles parce que meta/flux.yml est statique : un role unique aurait declare l'ingress pour TOUS les caches -- maillage complet, visible au devis. serveur_artefacts_site porte l'ingress, serveur_artefacts l'egress vers l'amont. Debian est desormais telecharge une fois pour toute la fabric. Le cache du site ne voit que des requetes agregees, jamais quelle machine installe quoi. Rien n'est applique : le devis se lit avant. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
23 lines
1.1 KiB
YAML
23 lines
1.1 KiB
YAML
---
|
|
# UN CACHE DE SITE QUI SE CHAÎNERAIT SUR UN AUTRE SERAIT UNE BOUCLE.
|
|
#
|
|
# Il est le bout de la chaîne : les caches des tenants viennent à lui, et lui va chez
|
|
# Debian. Le laisser pointer sur un amont ferait tourner les paquets en rond entre deux
|
|
# caches, ou pire, hors du site sans que personne ne l'ait décidé.
|
|
- name: Exiger que le cache du site aille directement à l'amont
|
|
ansible.builtin.assert:
|
|
that:
|
|
- (serveur_artefacts_amont | default('')) == serveur_artefacts_site_amont_attendu
|
|
fail_msg: >-
|
|
Ce cache est déclaré cache du SITE : il doit aller directement chez Debian.
|
|
`serveur_artefacts_amont` doit rester vide — sinon les caches se chaînent en boucle.
|
|
|
|
# É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 une
|
|
# responsabilité à un port que personne n'écoute.
|
|
- name: Le cache écoute-t-il vraiment ?
|
|
ansible.builtin.wait_for:
|
|
host: "127.0.0.1"
|
|
port: "{{ serveur_artefacts_port }}"
|
|
timeout: 30
|
|
when: not ansible_check_mode
|