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>
This commit is contained in:
alkatrazz 2026-07-02 23:29:47 +02:00
parent aaa982f93c
commit bd169e5e1a
9 changed files with 262 additions and 1 deletions

View file

@ -0,0 +1,23 @@
[Unit]
Description=Satisfactory dedicated server (steamcmd, app {{ satisfactory_app_id }})
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User={{ satisfactory_user }}
WorkingDirectory={{ satisfactory_install_dir }}
{% if satisfactory_update_on_start %}
# Mise à jour du jeu avant chaque démarrage (login anonyme) — ajoute ~1 min au boot.
# Désactivable via satisfactory_update_on_start: false (host_vars).
ExecStartPre={{ satisfactory_steamcmd_dir }}/steamcmd.sh +force_install_dir {{ satisfactory_install_dir }} +login anonymous +app_update {{ satisfactory_app_id }} +quit
{% endif %}
ExecStart={{ satisfactory_install_dir }}/FactoryServer.sh -Port={{ satisfactory_port }} -unattended
Restart=on-failure
RestartSec=15
Nice={{ satisfactory_nice }}
MemoryMax={{ satisfactory_memory_max }}
TimeoutStartSec=600
[Install]
WantedBy=multi-user.target