# 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