Aller au contenu principal

Nœuds

La page Nœuds (/hosts, /nodes y mène aussi) liste en une seule vue toutes les machines du cluster gérées par l'agent Navin, où qu'elles tournent : serveur physique, machine virtuelle sur site, cloud privé, datacenter ou cloud public (AWS, Azure, Google Cloud, OVHcloud...). Elle nécessite cluster:read ; ajouter et modifier des nœuds nécessite hosts:manage.

Ce que montre l'écran​

Une seule liste : nœud, état (registering, healthy, unhealthy, lost, maintenance, decommissioned) et confiance de son agent (En quarantaine, Révoqué), services installés, CPU, mémoire, disque, réseau, système, GPU. Voir le détail ajoute la plateforme, la version de l'agent, le dernier battement, l'identité (certificat, identifiant SPIFFE, rotation à faire) et qui gère la machine (plateforme ou client).

Le détail d'un nœud (/hosts/<id>) montre ses faits (système, CPU, mémoire, disques, GPU, plateforme), ses métriques, ses Contrôles préalables et ses composants.

Ajouter des nœuds​

Ajouter des nœuds ouvre un seul écran avec quatre méthodes. Toutes installent le même agent, la même unité systemd et enregistrent le nœud de la même façon ; l'agent vérifie l'empreinte de l'autorité du Manager avant de s'enregistrer.

MéthodePourCe que fait la console
Commande à collerserveur physique, VM, cloud privé, datacenterune commande à coller dans un terminal de la machine (compte avec sudo) : télécharge l'agent depuis le Manager, vérifie son SHA-256, l'installe (dnf, apt, pacman ou archive), enregistre le nœud et démarre l'agent
SSH depuis le Managermachines joignables en SSH, directement ou par un bastionle Manager se connecte avec une clé Ed25519 (RSA si la politique SSH du cluster l'autorise, clé protégée par phrase de passe acceptée) ou un certificat OpenSSH d'une autorité approuvée, vérifie l'identité de chaque machine (empreinte SHA256 ou clé publique, ou autorité des machines) puis lance la même installation (opération host.ssh_bootstrap)
Instance cloudAWS, Azure, Google Cloud, OVHcloud, OpenStack, Scaleway, Oracle, Outscale, cloud privé avec cloud-initle script à donner en données utilisateur (ou script de démarrage), l'endroit où le mettre dans la console du cloud et la ligne de commande ; l'instance s'enregistre à son premier démarrage, sans SSH
Image ou automatisationAnsible, Terraform, image de référence, Puppet, Chef, Saltla commande Ansible, les lignes Terraform et le fichier enroll.env à déposer dans l'image

Les trois méthodes par jeton partagent un accès (jeton d'amorçage limité dans le temps et en utilisations), affiché une seule fois ; Accès actifs les liste et les révoque. Le script ne fait rien sur une machine déjà enregistrée (il peut tourner à chaque démarrage), n'installe pas l'agent s'il est déjà là, et ne lance rien s'il est tronqué. Quand la console a son propre certificat, il est déposé dans /etc/navin-manager-agent/manager-tls.pem et donné à nm-agent register --ca-file. Le proxy d'entreprise des Paramètres est appliqué à dnf, apt-get et pacman.

Sécurité de la méthode SSH : jamais de mot de passe ni de compte root, jamais de clé d'hôte apprise à la volée (StrictHostKeyChecking=yes), chaque bastion vérifié de la même façon, la clé privée et le jeton gardés en mémoire le temps de l'opération seulement, le script envoyé sur l'entrée standard (le jeton n'apparaît sur aucune ligne de commande), les journaux masqués. Le compte doit avoir sudo sans mot de passe (sudo_password_required sinon).

Actions​

BoutonEffetPermission
Ajouter des nœudsles quatre méthodes ci-dessushosts:manage
Mettre en quarantaine, Rétablir, Révoquer (menu de la ligne)confiance de l'agent : la quarantaine bloque tâches et commandes, la révocation tout appelhosts:manage
Mettre à jour l'agent (menu de la ligne)commande signée agent.update vers le binaire signé du miroirhosts:manage
Bris de glace (menu de la ligne)certificat SSH d'urgence, deux autres approbateurshosts:manage
Rafraîchir l'inventaireopération host.facts (tâche facts.collect)hosts:manage
Contrôles préalablesopération host.preflighthosts:manage
Démarrer, Arrêter, Redémarrer un composantopération service.action sur ce nœudservices:operate
Nouvelle valeur d'un paramètre du nœudopération host.parametershosts:manage
Retirer du serviceopération host.decommission ; refusée tant qu'il reste des composantshosts:manage
Supprimer le nœudsupprime le nœud de l'inventairehosts:manage

Un nœud géré par le client n'offre ni mise à jour ni bris de glace.

Tâches courantes​

  1. Ajouter une machine sur site. Ajouter des nœuds > Commande à coller > Créer l'accès, copiez la commande, collez-la sur la machine (voir Installer l'agent Navin). Le nœud apparaît avec ses contrôles préalables.
  2. Ajouter des instances AWS, Azure ou Google Cloud. Instance cloud, choisissez le cloud, téléchargez navin-user-data.sh et donnez-le en données utilisateur à la création des instances.
  3. Retirer un nœud. Retirez ses composants dans Services, puis Retirer du service.