Aller au contenu principal

Référence de configuration de l'agent Navin

Cette page liste la configuration de l'agent Navin, relevée dans nm_agent/config.py (classe AgentConfig) et nm_agent/cli.py. L'agent Go lit le même fichier avec les mêmes clés. Elle est générée par navin-manager/docs/tools/generate_reference.py : ne la modifiez pas à la main.

Clés d'agent.json​

Le fichier /etc/navin-manager-agent/agent.json contient un objet JSON. Les clés inconnues sont ignorées ; une liste ne doit contenir que des chaînes, un entier doit être positif, toute autre valeur doit être une chaîne, sinon l'agent s'arrête avec config_invalid. nm-agent register écrit server_url, agent_url et les intervalles envoyés par le Manager ; la tâche agent.config met le fichier à jour depuis le Manager. Le fichier est remplacé de façon atomique, en mode 0640.

CléTypeDéfautDescription
server_urlchaîne""Adresse de l'écoute console du Manager (port 8460), écrite par nm-agent register.
agent_urlchaîne""Adresse de l'API des agents (port 8461), écrite par nm-agent register depuis --agent-url, la valeur existante ou la réponse du Manager.
state_dirchaîne/var/lib/navin-manager-agentRépertoire d'état (mode 0700) : bundle certificat/clé atomique agent.pem (0600), ca.crt, credentials.json, tâche en cours. Les anciens agent.crt et agent.key ne sont lus que si agent.pem est absent.
log_dirchaîne/var/log/navin-manager-agentRépertoire des journaux : agent.log (20 Mo, 5 copies).
fs_prefixchaîne""Préfixe de chaque chemin géré (bac à sable sans root). Vide : aucun.
allowed_rootsliste de chaînes/etc/navin, /opt/navin, /var/lib/navin, /var/log/navin, /run/navin, /etc/systemd/system/navin-*, /etc/sysctl.d/90-navin-*, /etc/security/limits.d/90-navin-*, /etc/containers/systemd/navin-*Racines sous lesquelles les tâches de fichiers peuvent écrire ; un chemin hors racine, avec .. ou un lien symbolique échoue avec path_not_allowed.
allowed_commandsliste de chaînes/bin/true, /usr/bin/true, /bin/false, /usr/bin/false, /bin/echo, /usr/bin/echo, /usr/bin/id, /usr/bin/hostname, /usr/bin/unameProgrammes absolus que command.run et les contrôles de commande peuvent lancer, en plus de ceux situés dans les racines autorisées ; jamais par un shell.
service_driverchaîne""systemd ou process. Vide : systemd si /run/systemd/system existe, sinon process.
heartbeat_interval_sentier15Secondes entre deux signaux de vie (le Manager peut le fixer à l'enregistrement).
poll_wait_sentier25Secondes d'attente longue pour la tâche suivante.
health_interval_sentier30Secondes entre deux tours de santé des composants.
stop_timeout_sentier10Secondes laissées à un processus pour s'arrêter avant d'être tué (pilote process).
log_levelchaîneINFONiveau de journalisation de l'agent.
ca_filechaîne""Bundle d'autorités qui vérifie le TLS de l'écoute d'enregistrement (sinon le magasin du système).

Niveaux de journalisation​

Valeurs acceptées pour log_level (sans tenir compte de la casse) : DEBUG, INFO, WARNING, ERROR.

Options de nm-agent​

nm-agent [--config FICHIER] [--lang en|fr] <commande> [options]. Codes de sortie : 0 succès, 1 status d'un hôte non enregistré, 2 erreur (configuration invalide, enregistrement refusé, empreinte de l'autorité de certification incorrecte).

CommandeOptionDéfautDescription
nm-agent--config/etc/navin-manager-agent/agent.jsonFichier de configuration.
nm-agent--lang(aucune)Langue des messages (en ou fr) ; par défaut depuis LC_ALL ou LANG.
nm-agent--version(aucune)Affiche la version et quitte.
nm-agent registerEnregistre cet hôte : clé et demande de certificat produites sur l'hôte, appel POST /agent/v1/register, vérification de l'empreinte de l'autorité, identifiants rangés dans state_dir.
nm-agent register--serverobligatoireAdresse du Manager (écoute console, port 8460).
nm-agent register--token(aucune)Jeton d'amorçage affiché dans la console.
nm-agent register--token-env(aucune)Nom de la variable d'environnement qui contient le jeton d'amorçage (le garde hors de la ligne de commande).
nm-agent register--ca-sha256obligatoireEmpreinte sha256 de l'autorité du Manager ; une autre autorité arrête l'enregistrement avec ca_mismatch.
nm-agent register--ca-file(aucune)Bundle d'autorités pour le TLS de l'écoute d'enregistrement.
nm-agent register--fqdn(aucune)Nom complet de l'hôte (détecté par défaut).
nm-agent register--hostname(aucune)Nom court de l'hôte (détecté par défaut).
nm-agent register--ip(aucune)Adresse de l'hôte (par défaut celle de la route par défaut).
nm-agent register--agent-url(aucune)Adresse de l'API des agents (par défaut celle envoyée par le Manager).
nm-agent runExécute l'agent : signaux de vie, faits, tâches, santé. Sort avec 2 et not_registered avant un enregistrement.
nm-agent statusAffiche l'enregistrement, les adresses, le pilote, la tâche en cours et le nombre de composants.
nm-agent factsAffiche les faits de l'hôte en JSON.

Variables d'enroll.env​

/etc/navin-manager-agent/enroll.env (mode 0600, propriétaire root) permet à l'unité navin-manager-agent-enroll.service d'enregistrer l'hôte sans taper nm-agent register. L'unité supprime le fichier une fois l'hôte enregistré, car le jeton ne sert qu'une fois.

Variable d'environnementDescription
NM_SERVERAdresse du Manager, par exemple <manager-url>:8460.
NM_TOKENJeton d'amorçage créé dans la console ou avec navin-manager enroll-token.
NM_CA_SHA256Empreinte sha256 de l'autorité du Manager affichée à côté du jeton.
NM_REGISTER_ARGSOptions supplémentaires facultatives de nm-agent register, entre guillemets, par exemple --ca-file /etc/navin-manager-agent/manager-tls.pem ou --fqdn.