Set-OPS-Public/roles/serveur_relais/handlers/main.yml
Daniel Allaire f9e45b1676 relais : la face publique d'un site sans adresse fixe, et le site de reprise de TechnoLibre
Le site de TechnoLibre n'a qu'une adresse DHCP. Trois adresses fixes sont louees sur un VPS
(le relais), qui repond a l'ARP pour elles et les route en /32 dans un tunnel WireGuard que la
frontiere initie. Aucune traduction : l'adresse du client arrive intacte.

- underlay.py : `tunnel: wireguard` dispense de VLAN ; role d'hote `relais`.
- devis_opnsense.py : `opnsense_face_publique`. Les entrees publiques s'y posent avec
  reply-to ; les sorties des locataires du pool passent par le relais ; une redirection n'y
  vise plus `wanip`. Le devis de Chezlepro est identique au caractere pres.
- appliquer_opnsense.py : replyto et gateway transmis et dans l'identite (seulement s'ils
  existent) ; le NAT sortant en mode automatic arrete l'application au lieu de dupliquer.
- role serveur_relais, inventorie depuis la carte comme un hyperviseur ; cle privee dans la
  voute du site. Deploye, idempotent.
- site_inventaire.py : les hyperviseurs ne sont plus filtres sur 192.168.11. ; site-appliquer
  charge la voute designee par SETOPS_UNDERLAY ; voute.py n'exige plus d'un locataire un
  secret du site.
- prouver.py : P67 lit le plan par underlay.plan_site() ; P53 couvre la face publique.
- Tests : test_underlay_tunnel, test_face_publique_relais, test_mode_nat_sortant.

95 preuves (make verifier), make test passe. CHANGELOG 144 et 145.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:20:04 -04:00

23 lines
789 B
YAML

---
- name: Appliquer les reglages noyau du relais
ansible.builtin.systemd:
name: systemd-sysctl
state: restarted
- name: Redemarrer systemd-resolved
ansible.builtin.systemd:
name: systemd-resolved
state: restarted
# Le tunnel se recree : quelques secondes sans relais, la frontiere se reconnecte d'elle-meme
# (maintien de connexion toutes les 25 s).
- name: Redemarrer le tunnel du relais
ansible.builtin.systemd:
name: "wg-quick@{{ serveur_relais_interface_tunnel }}"
state: restarted
# `nft -f` remplace le jeu entier d'un coup (`flush ruleset` en tete) : aucun instant sans
# regle. Le fichier a ete valide (`nft -c`) avant d'etre pose.
- name: Recharger le pare-feu du relais
ansible.builtin.command: nft -f /etc/nftables.conf
changed_when: true