Funk-lab/ansible/roles/gateway
ALI YESILKAYA 507f4822f0
feat(ansible): serveur dédié Satisfactory sur gpu-01 (#74)
* feat(ansible): serveur dédié Satisfactory sur gpu-01

- Nouveau rôle satisfactory_server : install steamcmd (login anonyme,
  app 1690800), service systemd avec update auto en ExecStartPre,
  MemoryMax=16G + Nice=5 (protège le llama-server), firewalld 7777 tcp+udp
- Retries steamcmd (« Missing configuration » rc=8 au premier run)
- Fcontext SELinux bin_t sur steamcmd/ et server/ (203/EXEC sinon)
- gateway : DNAT 192.168.1.200:7777 → gpu-01:7777 (TCP+UDP) + forward
- Doc admin/ops/satisfactory.md (accès, exploitation, pièges rencontrés)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(satisfactory): ouvrir le port 8888/tcp Reliable Messaging

Depuis la 1.1, le client ouvre un socket TCP :8888 en plus du jeu UDP
:7777. Bloqué par firewalld, le join réussissait puis le client était
déconnecté (~60 s) avec « connection to the host has been lost »
(log client : LogReliableMessaging: Failed to connect to server socket).

- firewalld gpu-01 : + 8888/tcp (variable satisfactory_reliable_port)
- gateway s01 : DNAT + forward étendus à 8888/tcp
- doc : tableau des 3 sockets + piège n°3

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs(satisfactory): accès internet via IPv4 full-stack Free

Le remap de port Freebox (17777→7777) ne fonctionne pas : le serveur
annonce ses ports dans le protocole (externe = interne obligatoire).
Option IPv4 full-stack activée → redirections 1:1 7777 tcp+udp + 8888 tcp
vers funk-s01, DNAT existant inchangé.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 00:56:28 +02:00
..
handlers feat(postfix): relay SMTP Gmail + suppression règles Conan nftables 2026-05-17 16:46:42 +02:00
tasks feat: initial commit — Ansible roles storage-01/gpu-01 opérationnels 2026-05-12 17:17:03 +02:00
templates feat(ansible): serveur dédié Satisfactory sur gpu-01 (#74) 2026-07-03 00:56:28 +02:00
README.md docs(ansible): README par rôle (19) + gaps IaC découverts à l'audit 2026-06-10 15:21:24 +02:00

gateway

Fait de storage-01 le routeur/firewall du LAN cluster : nftables + NAT + IP forwarding. Remplace firewalld (stoppé et désactivé).

Ce que fait le rôle

  • Désactive firewalld, installe nftables
  • Active net.ipv4.ip_forward
  • Déploie /etc/nftables.conf depuis templates/nftables.conf.j2 (policy drop en input/forward)

Ports ouverts (template nftables.conf.j2)

Port Source Service
22 LAN maison + cluster SSH
53 udp/tcp, 67 udp LAN cluster dnsmasq (DNS + DHCP)
111, 2049 LAN cluster NFS
5432, 6333/6334, 9000/9001 LAN cluster PostgreSQL, Qdrant, MinIO
9100, 9093 cluster + pods 10.42/16 node_exporter, alertmanager-webhook
8080 maison + cluster + pods Hermes gateway
9119 hermes_dashboard_allowed_ip uniquement Dashboard Hermes
4000 maison + cluster + pods LiteLLM
25 cluster + pods Postfix relay
9095 cluster + pods hermes-auto-improve trigger

NAT : masquerade du LAN cluster vers le WAN.

Variables

Pas de defaults — utilise lan_interface, wan_interface (host_vars) et hermes_dashboard_allowed_ip (defaults du rôle hermes_agent).

Caveat

Tout nouveau service réseau doit ajouter son port ici (modifier le template puis --tags gateway). C'est la cause de plusieurs incidents passés (voir admin/incidents.md 2026-05-13, port monitoring bloqué).