48 lines
1.7 KiB
Text
48 lines
1.7 KiB
Text
|
|
# 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
|