Installer un hôte

Installez et appairez un hôte Ubuntu Server avec une commande et un code : chaque téléchargement vérifié, services de session installés, machine appairée.

Une seule commande fait d’une machine Ubuntu Server 24.04 un hôte Community. Elle vérifie la machine, installe les services de session, puis affiche un code pour appairer la machine avec votre compte. Rien à copier depuis la console. Environ 5 minutes.

Avant de commencer

  • Une machine conforme aux Prérequis fournisseur : Ubuntu Server 24.04 installé sur la machine elle-même, le noyau HWE (Linux 6.12 ou plus récent), la virtualisation et l’IOMMU activées dans le micrologiciel.
  • Un terminal sur la machine, avec un utilisateur qui peut lancer sudo.
  • Un compte fournisseur avec une adresse courriel vérifiée, en tant que propriétaire ou administrateur de votre organisation.

1. Lancer la commande sur la machine

curl -fsSL https://nodelodge.com/host | sudo bash

Tapez-la telle quelle. Elle demande une fois votre mot de passe sudo, puis :

  1. Vérifie la clé de publication. Le script de démarrage contient la clé de publication Node Lodge et la compare à la clé publiée dans le DNS, à l’écart de ce site (voir La clé de publication). Si elles diffèrent, rien ne s’exécute.
  2. Vérifie l’installeur. Il télécharge install.sh et sa signature et vérifie la signature avec cette clé. Si la vérification échoue, rien ne s’exécute.
  3. Vérifie la machine. Chaque prérequis a sa ligne : ok, WARN ou MISSING, avec la correction. Quand il manque ce que vous seul pouvez changer (le micrologiciel, le noyau, le système), il s’arrête avant toute modification.
  4. Vérifie la version. L’agent, le démon des sessions et leurs fichiers de service arrivent dans un seul fichier signé, vérifié avec la même clé avant d’être décompressé. Cloud Hypervisor et le miroir de registre sont vérifiés par des empreintes SHA-256 fixes.
  5. Installe. Les paquets système, Node.js 22, les comptes nl-vmd, nl-mirror et nl-agent, la version dans /opt/nodelodge et quatre services lancés au démarrage.
  6. Affiche un code. L’agent génère sa clé sur la machine et se prépare à l’appairage. Seule la partie publique de la clé quitte la machine.

Le terminal affiche alors :

  To pair this machine, open nodelodge.com/pair on any device signed in to Node Lodge
  and enter the code K7QX-M2PD, or scan:

  (QR code)

  The code expires in 10 minutes. Waiting for approval...

2. Saisir le code

Sur n’importe quel appareil connecté à Node Lodge, votre téléphone compris :

  1. Ouvrez nodelodge.com/pair et saisissez le code, ou scannez le code QR : il ouvre la même page avec le code déjà rempli.
  2. Vérifiez la machine : GPU et VRAM, CPU, mémoire, système, ainsi que l’adresse et le pays d’où vient sa demande. Si vous n’avez pas lancé cette installation vous-même, sélectionnez Decline.
  3. Nommez la machine. Le nom d’hôte est proposé ; les locataires voient ce nom : évitez toute donnée personnelle.
  4. Sélectionnez Pair this machine.

La machine termine seule : elle reçoit ses identifiants, s’appaire et lance l’autotest. La console ouvre sa page, en attente de revue.

Un code ne sert qu’une fois, pendant 10 minutes. Seul un propriétaire ou un administrateur de l’organisation peut l’approuver, depuis un navigateur connecté.

Ce qui tourne sur la machine

Service Compte Rôle
compute-host nl-agent Signaux de présence, rapport matériel, ordres signés par Node Lodge
nl-vmd nl-vmd Lance chaque session dans sa propre micro-VM
nl-vmd-helper root Réseau, pare-feu et remise du GPU aux VM, rien d’autre
nl-mirror nl-mirror Cache local des images de conteneur, partagé par les sessions

Aucun service n’écoute sur un port réseau. L’agent se connecte vers Node Lodge en HTTPS.

Vérifier l’hôte

sudo /opt/nodelodge/install.sh --check

Lit la machine, les services et l’appairage, lance l’autotest et ne modifie rien. Se termine par host ready, ou par la liste de ce qu’il faut corriger.

Mettre à jour et revenir en arrière

sudo /opt/nodelodge/install.sh --update
sudo /opt/nodelodge/install.sh --rollback

--update installe la version la plus récente, signée par une clé de publication déjà épinglée sur la machine. Les versions ne font qu’avancer : la machine refuse toute version plus ancienne que la plus récente qu’elle a installée, et toute clé retirée par une version ultérieure, quoi que le serveur envoie. La version précédente reste sur le disque, et --rollback y revient ; le --update suivant repart en avant. Les sessions continuent pendant l’une et l’autre.

Relancer la commande est sans risque : ce qui est déjà correct reste tel quel, et une machine déjà appairée ne l’est pas une seconde fois.

Options

Ajoutez les options après sudo bash -s -- :

curl -fsSL https://nodelodge.com/host | sudo bash -s -- --skip-dns-check
Option Usage
--skip-dns-check Réseaux qui filtrent le DNS. Comparez d’abord vous-même la clé avec celle ci-dessous.

Sans navigateur près de la machine

Pour l’automatisation, ou une machine où personne ne peut ouvrir la console : dans Setup, sous No browser at hand, nommez la machine et sélectionnez Generate pairing code. La console affiche une commande qui transmet le code à l’installeur sur son entrée standard, jamais dans les arguments d’un processus. Le code ne sert qu’une fois et expire après 15 minutes.

GPU

Les GPU loués appartiennent aux VM : liés à vfio-pci, sans pilote NVIDIA sur l’hôte. Réservez-les comme indiqué dans Prérequis fournisseur, puis vérifiez l’hôte à nouveau.

La clé de publication

Le script de démarrage vérifie l’installeur avec cette clé publique, celle qui signe chaque version de Node Lodge :

MCowBQYDK2VwAyEAMpBEdmKh+jNxfzcsprbjpeoESLOYNWJtfH1Eq3eGekw=

La même clé est publiée dans le DNS, dans une zone signée par DNSSEC, à l’écart de la console et de ce site. Le script de démarrage la lit avant toute exécution ; pour la lire vous-même :

dig +short TXT _host-release-key.nodelodge.com

La réponse est la clé ci-dessus, entre guillemets. Pendant un changement de clé, elle liste les deux clés. Une fois installée, la machine vérifie chaque mise à jour avec les clés qu’elle a épinglées.

Pour lire le script de démarrage avant de le lancer, téléchargez-le avec sa signature et vérifiez-le avec la clé ci-dessus :

curl -fsSL -o host.sh https://nodelodge.com/host
curl -fsSL -o host.sh.sig https://nodelodge.com/host.sig
printf '%s\n' '-----BEGIN PUBLIC KEY-----' 'MCowBQYDK2VwAyEAMpBEdmKh+jNxfzcsprbjpeoESLOYNWJtfH1Eq3eGekw=' '-----END PUBLIC KEY-----' > release-key.pem
base64 -d host.sh.sig > host.sh.raw
{ printf 'nl-host-bootstrap\0'; cat host.sh; } > host.sh.msg
openssl pkeyutl -verify -pubin -inkey release-key.pem -rawin -in host.sh.msg -sigfile host.sh.raw
sudo bash host.sh

Dépannage

Vous voyez Faites ceci
the release key could not be read from DNS Installez dig (sudo apt-get install -y bind9-dnsutils) et relancez la commande. Sur un réseau qui filtre le DNS, comparez la clé ci-dessus, puis ajoutez -s -- --skip-dns-check.
is not the one published in DNS Rien n’a été exécuté. Contactez le support.
signature check failed: nothing was run Relancez la commande. Si l’échec se répète, contactez le support.
MISSING Linux 6.12 or newer Lancez la correction indiquée, redémarrez, puis relancez la commande.
The code expired Relancez la commande : ce qui est installé reste en place, et un nouveau code s’affiche.
This code is not valid or has expired dans la console Vérifiez le code sur l’écran de la machine. Après 10 minutes, relancez la commande pour obtenir un nouveau code.
Pairing was declined in the console Relancez la commande quand vous êtes prêt à l’approuver.
is older than the newest release installed Rien n’a été modifié. Relancez --update plus tard. Si cela se répète, contactez le support.
Un service est MISSING journalctl -u <service> -n 20 en donne la raison. Relancez la commande une fois corrigé.

Dernière mise à jour

Les résultats apparaissent pendant la saisie. Les flèches permettent de les parcourir.