Aller au contenu principal

Installer l'agent Navin

Cette page installe l'agent Navin sur un hôte et l'enregistre dans un cluster du Navin Manager. Elle est menée par un administrateur système disposant des droits root sur l'hôte et dure environ 5 minutes par hôte. Trois voies existent : la commande d'enregistrement, un fichier enroll.env déposé à l'avance (aucune commande à taper, pour cloud-init ou la gestion de configuration) et l'amorçage SSH depuis la console.

Avant de commencer​

  • Système : un système certifié de la matrice de compatibilité, x86_64 ou aarch64 pour l'agent Go. Vérification : cat /etc/os-release et uname -m.
  • Réseau : l'hôte joint le Manager sur 8460/tcp et 8461/tcp. Vérification : curl -sk https://<fqdn-manager>:8460/api/v1/version.
  • Un jeton d'amorçage et l'empreinte de l'autorité : dans la console, Nœuds > Ajouter des nœuds, ou sur l'hôte du Manager sudo runuser -u navin-manager -- navin-manager enroll-token --cluster <nom-cluster> --uses 1 --hours 1, qui affiche bootstrap token, server, ca-sha256 et tls-sha256.
  • Horloge synchronisée : les signatures de requêtes sont refusées au-delà de 300 secondes d'écart.

Étapes​

  1. Installer le paquet. L'agent Go est un binaire statique : ni Python, ni OpenSSL. Le paquet active navin-manager-agent.service et les unités d'enrôlement.

    SystèmeCommande
    RHEL, Rocky Linux, AlmaLinux, Oracle Linux, CentOS Streamsudo dnf install navin-manager-agent-go ou sudo dnf install ./navin-manager-agent-go-<version>-1.<arch>.rpm
    Ubuntu, Debiansudo apt install navin-manager-agent-go ou sudo apt install ./navin-manager-agent-go_<version>_<debarch>.deb
    Arch Linuxsudo pacman -S navin-manager-agent-go ou sudo pacman -U ./navin-manager-agent-go-<version>-1-<arch>.pkg.tar.zst
    Sans gestionnaire de paquetssudo tar -xzf navin-manager-agent-go-<version>-linux-<arch>.tar.gz -C / && sudo systemctl daemon-reload

    <arch> : x86_64 ou aarch64 ; <debarch> : amd64 ou arm64. Les dépôts se configurent comme dans Installer le Navin Manager. Vérifiez d'abord les fichiers avec sha256sum -c --ignore-missing SHA256SUMS.

    L'agent Python (navin-manager-agent, RPM noarch, DEB all, pacman any) nécessite Python 3.9 ou plus récent (RHEL 8 : dnf install python39) et openssl ; il utilise la même commande, le même fichier et la même unité. Les deux paquets sont en conflit : installer l'un remplace l'autre et conserve l'enregistrement.

    Résultat attendu : nm-agent --version affiche la version ; nm-agent status affiche Not registered.

    En cas d'échec : sur RHEL 8 avec l'agent Python, Python 3.9 or newer is required (RHEL 8: dnf install python39).

  2. Enregistrer l'hôte. Lancez la commande affichée par la console. L'agent épingle l'autorité par son empreinte.

    sudo nm-agent register --server https://<fqdn-manager>:8460 --token <jeton> --ca-sha256 <empreinte>

    <jeton> : le jeton d'amorçage. <empreinte> : la valeur ca-sha256. Tant que la console a encore le certificat autosigné de l'installation, ajoutez --ca-file <fichier> avec une copie de /etc/navin-manager/tls/server.crt du Manager.

    Résultat attendu : Host registered: id <id>, cluster <cluster>. Credentials stored in /var/lib/navin-manager-agent. (en français avec --lang fr).

    En cas d'échec : voir Dépanner l'agent Navin (register_failed, ca_mismatch, network_error).

  3. Démarrer l'agent.

    sudo systemctl enable --now navin-manager-agent

    Résultat attendu : systemctl is-active navin-manager-agent affiche active ; l'hôte apparaît dans Hôtes avec ses faits et ses contrôles préalables.

Enregistrer sans commande​

Déposez /etc/navin-manager-agent/enroll.env (mode 0600, root) avant ou après l'installation du paquet :

NM_SERVER=https://<manager-host>:8460
NM_TOKEN=<jeton>
NM_CA_SHA256=<empreinte>
NM_REGISTER_ARGS="--ca-file /etc/navin-manager-agent/manager-tls.pem"

navin-manager-agent-enroll.service enregistre l'hôte une fois, démarre l'agent et supprime le fichier (le jeton ne sert qu'une fois). navin-manager-agent-enroll.timer réessaie chaque minute tant que le Manager est injoignable. Les variables sont décrites dans la référence de configuration.

Enregistrer par SSH​

Dans la console, Nœuds > Ajouter des nœuds > SSH depuis le Manager : indiquez les machines (une par ligne, nom:port si besoin), l'identité de chacune (empreinte SHA256 ou clé publique de sa clé d'hôte), un compte avec sudo sans mot de passe et la clé privée (OpenSSH ou PEM, phrase de passe acceptée), ou un certificat OpenSSH d'une autorité approuvée, et un bastion si les machines ne sont joignables que par lui. Le Manager vérifie l'identité de chaque machine et du bastion, puis lance la même installation que la commande à coller (opération host.ssh_bootstrap). Root et les mots de passe sont refusés ; la clé et le jeton restent en mémoire pendant l'opération et ne sont jamais enregistrés. Le proxy d'entreprise des Paramètres est appliqué au gestionnaire de paquets.

Enregistrer une instance cloud​

Nœuds > Ajouter des nœuds > Instance cloud donne le script navin-user-data.sh à placer en données utilisateur de l'instance (AWS, Azure, OVHcloud, OpenStack, Scaleway, Oracle, Outscale, cloud-init) ou en script de démarrage (Google Cloud). L'instance s'enregistre à son premier démarrage ; sur une machine déjà enregistrée le script ne fait rien. Image ou automatisation donne la commande Ansible, les lignes Terraform et le fichier enroll.env.

Installation guidée​

Sur un nœud, navin-install node depuis l'archive hors ligne de sa famille vérifie l'hôte, installe l'agent et l'enregistre ; il refuse un Manager dont le certificat n'est pas celui de la commande de jonction :

sudo ./navin-install node --server https://<fqdn-manager>:8460 --token-file <fichier> --ca-sha256 <empreinte> --tls-sha256 <empreinte-tls>

Vérifier​

sudo nm-agent status
sudo navinctl status

Résultat attendu : Registered: host <id>, cluster <cluster>, Driver: systemd, rootless: False, et navin-manager-agent.service enabled et active.

Étapes suivantes​

Dépannage​

Voir Dépanner l'agent Navin.