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-releaseetuname -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 affichebootstrap token,server,ca-sha256ettls-sha256. - Horloge synchronisée : les signatures de requêtes sont refusées au-delà de 300 secondes d'écart.
Étapes
-
Installer le paquet. L'agent Go est un binaire statique : ni Python, ni OpenSSL. Le paquet active
navin-manager-agent.serviceet les unités d'enrôlement.Système Commande RHEL, Rocky Linux, AlmaLinux, Oracle Linux, CentOS Stream sudo dnf install navin-manager-agent-goousudo dnf install ./navin-manager-agent-go-<version>-1.<arch>.rpmUbuntu, Debian sudo apt install navin-manager-agent-goousudo apt install ./navin-manager-agent-go_<version>_<debarch>.debArch Linux sudo pacman -S navin-manager-agent-goousudo pacman -U ./navin-manager-agent-go-<version>-1-<arch>.pkg.tar.zstSans gestionnaire de paquets sudo tar -xzf navin-manager-agent-go-<version>-linux-<arch>.tar.gz -C / && sudo systemctl daemon-reload<arch>:x86_64ouaarch64;<debarch>:amd64ouarm64. Les dépôts se configurent comme dans Installer le Navin Manager. Vérifiez d'abord les fichiers avecsha256sum -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) etopenssl; 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 --versionaffiche la version ;nm-agent statusafficheNot registered.En cas d'échec : sur RHEL 8 avec l'agent Python,
Python 3.9 or newer is required (RHEL 8: dnf install python39). -
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 valeurca-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.crtdu 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). -
Démarrer l'agent.
sudo systemctl enable --now navin-manager-agentRésultat attendu :
systemctl is-active navin-manager-agentafficheactive; 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.