59 lines
2.5 KiB
Text
59 lines
2.5 KiB
Text
|
|
# Poste d'exploitation de {{ organisation | default('cet écosystème') }}
|
||
|
|
|
||
|
|
> Fichier **généré** par le rôle `serveur_ops`. Ne pas éditer à la main.
|
||
|
|
|
||
|
|
Cette machine sait reconstruire l'écosystème. Elle porte le moteur Set-OPS, le plan, et
|
||
|
|
un Ansible épinglé sur la même famille que celle qui a servi à le construire.
|
||
|
|
|
||
|
|
## Ce qu'elle contient
|
||
|
|
|
||
|
|
```text
|
||
|
|
{{ serveur_ops_racine }}/
|
||
|
|
{% for d in serveur_ops_depots %}
|
||
|
|
{{ "%-22s" | format(d.dest) }} {{ d.role }} — cloné depuis {{ serveur_ops_forge_url }}/{{ serveur_ops_forge_organisation }}/{{ d.depot }}.git
|
||
|
|
{% endfor %}
|
||
|
|
venv/ Ansible {{ serveur_ops_ansible }}
|
||
|
|
.ssh/id_{{ serveur_ops_cle_type }} la clé propre au poste
|
||
|
|
```
|
||
|
|
|
||
|
|
Le génome vient de **la forge de cet écosystème**, pas de son parent. Ces dépôts y sont
|
||
|
|
des miroirs, resynchronisés automatiquement : le poste lit donc une copie vivante.
|
||
|
|
|
||
|
|
## S'en servir
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo -iu {{ serveur_ops_utilisateur }}
|
||
|
|
cd {{ serveur_ops_racine }}/{{ (serveur_ops_depots | selectattr('role', 'eq', 'moteur') | first).dest }}
|
||
|
|
export PATH={{ serveur_ops_venv }}/bin:$PATH
|
||
|
|
export ANSIBLE_COLLECTIONS_PATH={{ serveur_ops_racine }}/.ansible/collections
|
||
|
|
make aide
|
||
|
|
```
|
||
|
|
|
||
|
|
L'instance pilotée est désignée par le lien `instance` → actuellement
|
||
|
|
`{{ serveur_ops_instance }}`. On la bascule comme sur n'importe quel poste Set-OPS.
|
||
|
|
|
||
|
|
## Les deux choses qu'il n'a PAS, et pourquoi
|
||
|
|
|
||
|
|
**Le mot de passe de la voûte.** Il se saisit à l'exécution. Une machine qui détiendrait
|
||
|
|
à la fois le plan, l'accès SSH à toute la flotte et la clé des secrets n'aurait plus
|
||
|
|
aucune profondeur : la compromettre, ce serait compromettre l'écosystème entier. Le mot
|
||
|
|
de passe reste dans une tête, ou dans un coffre hors de cette machine.
|
||
|
|
|
||
|
|
**Le fichier de voûte lui-même.** Les dépôts d'instance excluent `vault.yml` de git —
|
||
|
|
c'est la règle « aucun secret en clair ». Le génome cloné ici porte donc le plan **sans
|
||
|
|
les secrets**. Pour un déploiement réel, la voûte se restaure depuis la sauvegarde
|
||
|
|
(`restic`), pas depuis la forge.
|
||
|
|
|
||
|
|
Autrement dit : ce poste reproduit la **structure** de l'écosystème de mémoire, et ses
|
||
|
|
**secrets** depuis la sauvegarde. Deux sources distinctes, et c'est voulu.
|
||
|
|
|
||
|
|
## Sa clé doit être autorisée
|
||
|
|
|
||
|
|
Le poste s'est fabriqué sa propre paire SSH, distincte de celle du mainteneur — deux
|
||
|
|
exploitants, deux révocations possibles. Tant que sa clé publique n'est pas dans les
|
||
|
|
intrants SSH du plan, il ne joint aucun hôte. La clé publique :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cat {{ serveur_ops_racine }}/.ssh/id_{{ serveur_ops_cle_type }}.pub
|
||
|
|
```
|