Set-OPS-Public/roles/serveur_ops/templates/setops-gui.service.j2

48 lines
1.7 KiB
Text
Raw Normal View History

# GENERE par Set-OPS (role serveur_ops). Ne pas editer a la main.
#
# LA CONSOLE D'EXPLOITATION DE CET ECOSYSTEME.
#
# ELLE N'ECOUTE QUE SA PROPRE MACHINE, et ce n'est pas un reglage : c'est SA SEULE
# SERRURE. Le GUI sert sa page a qui la demande, avec son jeton ecrit dedans — le jeton
# garde contre le CSRF, pas contre un visiteur. Ce qui protege la fabric, c'est que
# personne d'autre que `127.0.0.1` ne peut frapper.
#
# Ce qui est publie est le nginx local, qui authentifie d'abord.
[Unit]
Description=Console d'exploitation Set-OPS ({{ setops_instance | default('instance') }})
Documentation=file://{{ serveur_ops_racine }}/{{ serveur_ops_depot_moteur }}/docs/carte-set-ops.md
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User={{ serveur_ops_utilisateur }}
Group={{ serveur_ops_utilisateur }}
WorkingDirectory={{ serveur_ops_racine }}/{{ serveur_ops_depot_moteur }}
# LE PYTHON DE L'ENVIRONNEMENT ISOLE, pas celui du systeme : le GUI importe `yaml` et
# les modules du moteur, et c'est cet environnement-la qui les porte.
ExecStart={{ serveur_ops_venv }}/bin/python3 scripts/inventory_gui.py \
--hote {{ serveur_ops_gui_ecoute }} --port {{ serveur_ops_gui_port }}
Restart=on-failure
RestartSec=5
# CE QU'ELLE PEUT FAIRE, ET CE QU'ON LUI RETIRE. La console LANCE des deploiements : on
# ne peut donc pas la priver d'executables ni de reseau. Ce qu'on peut lui retirer sans
# la casser, on le retire — un service qui deploie merite plus de soin que les autres,
# pas moins.
NoNewPrivileges=yes
PrivateTmp=yes
ProtectHome=read-only
ProtectSystem=full
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
RestrictSUIDSGID=yes
RemoveIPC=yes
LockPersonality=yes
[Install]
WantedBy=multi-user.target