Minihubs et mmh · 6. Installer un mmh
Une adresse et un compte,
ou un paquet à déposer.
Si la machine accepte SSH, le Hub fait tout. Si elle refuse toute connexion entrante, on y dépose un paquet, et l’antenne se présente d’elle-même.
Un mmh ne vaut que par l’endroit où il tourne : la machine d’un client, une VM chez un hébergeur, un serveur qui doit sortir sur Internet. Il faut donc pouvoir l’y poser vite, et proprement. Il y a deux chemins. Ils mènent au même endroit : un mmh qui rappelle son minihub parent sur le port 443 et apparaît dans l’onglet miniMiniHubs de ce minihub.
À quoi ça sert
- Ajouter une sortie sur Internet en une commande, TOR compris.
- Installer une antenne chez un client dont la machine refuse toute connexion entrante.
- Mettre à jour sans changer d’identité : même nom, même magasin, même historique.
- Retirer proprement : arrêt, purge, et le nœud quitte la flotte.
Ce qu’on voit à l’écran
Cet article n’a pas de capture. La pose d’un mmh ne passe pas par un écran : c’est une action du Hub, appelée en MCP ou en REST. Ce qu’on voit, c’est le résultat : le nouveau mmh dans l’onglet miniMiniHubs de son minihub, décrit dans l’article « Le mmh, en bref ».
Comment ça marche — par SSH, sans intervention
On donne au Hub l’adresse de la machine, un compte et son mot de passe. Il déduit le reste : l’identifiant de la machine, le nom du nœud, le minihub parent, le binaire à poser, les rôles (proxy et smtp par défaut), le mode (service permanent).
Le Hub range les accès
Le compte SSH part dans le coffre de secrets du Hub. Il servira aux mises à jour.
Le Hub fabrique l’identité
Il génère la clé et la demande de certificat, les fait signer par la PKI de son coffre, pour 90 jours. Il tire aussi le secret qui chiffrera le magasin local du mmh, et le garde au coffre.
Il écrit les permissions
Un fichier de permissions dérivé des rôles. Sans lui, l’agent démarrerait muet.
Le minihub parent se connecte à la machine
L’ordre voyage dans le tunnel jusqu’au minihub, qui ouvre la session SSH. Il dépose le binaire, vérifie son empreinte, pose l’identité, la configuration et les permissions.
Il installe TOR si le rôle est proxy
Avec un port de contrôle, pour pouvoir changer de circuit à la demande.
Il démarre le service
Un service systemd, lancé sous le compte fourni. Le mmh rappelle son parent en mTLS sur 443, et apparaît dans la liste.
Comment ça marche — la voie pull
Certaines machines n’acceptent aucune connexion entrante, pas même SSH. Alors on inverse : c’est la machine qui vient chercher.
La machine génère sa propre clé
La clé privée ne quitte jamais la machine. Seule la demande de certificat en sort.
Le Hub signe la demande
Par la même PKI, pour 90 jours. On rend le certificat et celui de l’autorité.
On dépose un paquet
Le binaire, les certificats, un fichier bootstrap.json (identité, parent, rôles, secret du magasin) et le fichier de permissions. Puis install.sh.
L’antenne s’enrôle au premier battement
Aucun enregistrement préalable : le minihub parent crée la ligne du mmh à son premier signe de vie.
Un programme Go qui n’est pas notre agent peut aussi s’enrôler comme mmh, en parlant le même protocole. Il devient visible et pilotable depuis son minihub.
Sous le capot
| Poser | deploy_miniminihub : vm_host, ssh_user, ssh_password requis ; optionnels roles, mode (persistent ou ephemeral), with_tor, exec_allow, settings, mcp_servers, heartbeat_ms, ttl_seconds |
| Mettre à jour | update_miniminihub : même identifiant, même nom, magasin préservé ; identifiants SSH relus au coffre ; refuse un nœud qui n’a pas été posé par deploy_miniminihub |
| Retirer | destroy_miniminihub : arrêt drainé, purge par SSH, révocation du certificat |
| Identité | CSR RSA 2048 générée par le Hub, signée en sign-verbatim par la PKI du coffre ; 90 jours |
| Sur la VM | /opt/miniminihub/, unité systemd sous le compte SSH ; TOR avec port de contrôle |
| Voie pull | paquet deploy/selfinstall/ (install.sh, bootstrap.json) ; enrôlement automatique au premier battement |
Toutes ces actions sont du worker miniminihub_deploy_worker, appelables par un agent IA.
Les limites, aujourd’hui
- Le compte SSH doit pouvoir utiliser
sudosans mot de passe, pour installer le service. - Le binaire publié vise Linux sur processeur x86 64 bits.
- Le certificat d’un mmh vaut 90 jours et se renouvelle à la main.
- Un seul de nos minihubs accueille des mmh aujourd’hui.
