Installer le Navin Manager
Cette page installe le serveur Navin Manager (console, API REST, moteur d'opérations) sur un hôte, depuis les
paquets, puis le démarre et réalise la première connexion. L'opération est menée par un administrateur système
disposant des droits root et dure environ 30 minutes. Autres méthodes : l'installation hors ligne
pour un réseau sans accès Internet, l'installateur guidé navin-install (section
Installation guidée) et le bac à sable pour un essai sur un poste sans root.
Avant de commencer
| Élément | Exigence | Vérification |
|---|---|---|
| Système | Ubuntu 24.04 (DEB), famille RHEL 8, 9 ou 10 : RHEL, Rocky Linux, AlmaLinux, Oracle Linux 8/9, CentOS Stream 9/10 (un seul RPM), Arch Linux (pacman), x86_64. Ubuntu 22.04 n'est qu'un hôte géré. La matrice complète est dans Compatibilité des systèmes. | cat /etc/os-release |
| Python | python3.12 et python3.12-venv sur Ubuntu, python3.12 sur la famille RHEL (AppStream en 8.10 et 9, BaseOS en 10), le python d'Arch Linux pour lequel le paquet a été construit. Le paquet installe la dépendance. | python3.12 --version |
| Base de données | Un serveur PostgreSQL : local sur l'hôte (postgresql ou postgresql-server, configuré par navin-manager-db local) ou un serveur externe joint avec sslmode=require, verify-ca ou verify-full. | psql --version |
| Nom | Un nom d'hôte complet qui se résout. Le certificat autosigné du paquet est établi pour lui. | hostname -f |
| Réseau | Port 8460/tcp (console, API, enregistrement des agents) ouvert depuis les opérateurs et les hôtes gérés ; port 8461/tcp (API des agents et miroir) ouvert depuis les hôtes gérés. | ss -ltn montre les deux ports libres |
| Droits | root ou sudo. | sudo -v |
Étapes
-
Ajouter le dépôt Navin, ou copier le paquet. Les paquets sont publiés dans des dépôts apt, dnf et pacman signés, produits par
os/repo.sh; sans dépôt, installez directement le fichier du paquet à l'étape 2.Ubuntu :
sudo curl -fsSLo /usr/share/keyrings/navin-archive-keyring.gpg https://<hote-depot>/apt/navin-archive-keyring.gpgsudo curl -fsSLo /etc/apt/sources.list.d/navin.sources https://<hote-depot>/apt/navin.sourcessudo apt updateRHEL, Rocky Linux, AlmaLinux :
sudo curl -fsSLo /etc/yum.repos.d/navin.repo https://<hote-depot>/rhel/navin.repoArch Linux (faites confiance une fois à la clé de publication, son empreinte figure dans
navin.conf) :curl -fsSLO https://<hote-depot>/arch/navin-archive-keyring.ascsudo pacman-key --add navin-archive-keyring.asc && sudo pacman-key --lsign-key <empreinte>curl -fsSL https://<hote-depot>/arch/navin.conf | sudo tee -a /etc/pacman.conf<hote-depot>: adresse du dépôt Navin ou de son miroir dans votre organisation.<empreinte>: l'empreinte de la clé écrite dansnavin.conf.Résultat attendu :
apt update,dnf repolistoupacman -Syaffiche le dépôtnavin.En cas d'échec : vérifiez le proxy du gestionnaire de paquets et le certificat de l'hôte du dépôt.
-
Installer un PostgreSQL local (facultatif) et le paquet. Le paquet crée le compte
navin-manager, l'environnement applicatif/opt/navin-manager/venvconstruit à partir des paquets wheel livrés dans le paquet (sans réseau), la clé maîtresse, un certificat autosigné,server.envet, si un serveur PostgreSQL est installé sur l'hôte, la base locale.sudo apt install postgresql navin-manager # Ubuntu 24.04sudo dnf install postgresql-server navin-manager # RHEL, Rocky Linux, AlmaLinux 9sudo pacman -S --needed postgresql && sudo pacman -S navin-manager # Arch LinuxSans dépôt :
sudo apt install ./navin-manager_<version>_amd64.deb,sudo dnf install ./navin-manager-<version>-1.el9.x86_64.rpmousudo pacman -U ./navin-manager-<version>-1-x86_64.pkg.tar.zst.Résultat attendu : le paquet affiche
initial account 'navin', one-time password in /etc/navin-manager/server.envetself-signed certificate created in /etc/navin-manager/tls. Si les paramètres passent les contrôles de production, le service est activé et démarré ; sinon il affichenot started, the settings are incomplete: run navin-manager check.En cas d'échec :
install-venv.shsignale un interpréteur absent (dnf install python3.12,python3.12-venv,pacman -S python) ; un échec de construction de l'environnement restaure le précédent. -
Choisir la base de données.
navin-manager-dbécritNM_DATABASE_URLdans/etc/navin-manager/server.envet applique les migrations. La base locale n'est jointe que par le socket UNIX, avec un mot de passe aléatoire.sudo navin-manager-db localPour le serveur PostgreSQL de votre organisation (TLS obligatoire) :
sudo navin-manager-db external 'postgresql://navin_manager:<mot-de-passe>@<db-host>:5432/navin_manager?sslmode=verify-full&sslrootcert=/etc/navin-manager/tls/postgresql-ca.pem'<mot-de-passe>: mot de passe du rôlenavin_manager, propriétaire de la basenavin_manager.Résultat attendu :
navin-manager-db: NM_DATABASE_URL set to ...et la liste des migrations appliquées ;sudo navin-manager-db statusmontre chaque migrationapplied.En cas d'échec : une adresse externe sans
sslmode=require,verify-caouverify-fullest refusée ; si les migrations échouent sur le nouveau serveur, l'ancienne valeur deNM_DATABASE_URLest restaurée. -
Installer le certificat TLS de votre PKI. Le certificat autosigné du paquet (EC P-256, 397 jours, noms : FQDN, nom court,
localhost,127.0.0.1) ne sert qu'au premier démarrage. Voir Certificats TLS. -
Contrôler les paramètres.
navin-manager checkliste chaque paramètre qui interdit un démarrage en production (TLS, certificats clients, attribut du cookie, jeton des métriques, coût scrypt, clé maîtresse,sslmode, mot de passe initial).sudo runuser -u navin-manager -- navin-manager checkRésultat attendu :
settings are valid for this environment.En cas d'échec : corrigez chaque ligne affichée ; les paramètres sont décrits dans la référence de configuration.
-
Démarrer le serveur. L'unité applique les migrations (
ExecStartPre=navin-manager migrate) puis lancenavin-manager serve, qui crée l'administrateur initial.sudo systemctl enable --now navin-managersudo firewall-cmd --permanent --add-port=8460/tcp --add-port=8461/tcp && sudo firewall-cmd --reload # famille RHELsudo ufw allow 8460/tcp && sudo ufw allow 8461/tcp # Ubuntu avec ufwRésultat attendu :
systemctl is-active navin-managerafficheactive; le journal montreadministrator navin from the configuration: created (the password must be changed at the first sign in).En cas d'échec :
journalctl -u navin-manager -n 100montre le paramètre refusé ou l'erreur de base de données. -
Se connecter et changer le mot de passe. Lisez le mot de passe à usage unique, ouvrez la console et connectez-vous avec
navin.sudo grep '^NM_ADMIN_PASSWORD=' /etc/navin-manager/server.envOuvrez
https://<fqdn-manager>:8460. La console demande aussitôt votre propre mot de passe (12 caractères ou plus).Résultat attendu : le Tableau de bord affiche
Aucun cluster pour l'instantet le bouton Créer un cluster.En cas d'échec : mot de passe perdu :
sudo runuser -u navin-manager -- navin-manager reset-adminremet le compte surNM_ADMIN_PASSWORD, à changer de nouveau à la connexion suivante. -
Sauvegarder la clé maîtresse.
/etc/navin-manager/master.keyscelle chaque secret enregistré.dangerSans copie de
master.key, les secrets enregistrés (connexions, coffre fort, mot de passe SMTP) sont irrécupérables après la perte de l'hôte. Gardez-en une copie dans le coffre de votre organisation.
Administrateur initial
| Élément | Valeur |
|---|---|
| Nom d'utilisateur | NM_ADMIN_USERNAME, par défaut navin |
| Mot de passe | NM_ADMIN_PASSWORD dans server.env, valeur aléatoire écrite par le paquet (Nm-<32 hex>-K9!) |
| Création | une fois, au premier démarrage de navin-manager serve ; un redémarrage ne le réapplique jamais |
| Mot de passe perdu | navin-manager reset-admin |
| Autres administrateurs | Administration > Utilisateurs, ou navin-manager create-admin --username <nom> (mot de passe saisi deux fois, lu dans --password-file ou --password-stdin) |
| Second facteur | désactivé par défaut ; NM_MFA_ENABLED=true rétablit l'étape TOTP |
Certificats TLS
Le Manager a deux écoutes et deux certificats :
| Écoute | Port | Certificat | Certificat client |
|---|---|---|---|
| Console, API, enregistrement | 8460 | tls_cert_file, tls_key_file (votre PKI) | non |
| API des agents et miroir | 8461 | émis par l'autorité interne du Manager (NM_PKI_DIR, par défaut /var/lib/navin-manager/pki) pour le FQDN et NM_AGENT_TLS_SANS | exigé (agent_client_cert_required) |
Pour remplacer le certificat autosigné :
-
Copier le certificat et sa clé. La clé n'est lisible que par le compte de service.
sudo install -o root -g navin-manager -m 0644 manager.crt /etc/navin-manager/tls/server.crtsudo install -o root -g navin-manager -m 0640 manager.key /etc/navin-manager/tls/server.keymanager.crt: le certificat (avec sa chaîne intermédiaire) émis pour le FQDN utilisé par les opérateurs et les agents.manager.key: sa clé privée. -
Redémarrer le serveur.
sudo systemctl restart navin-managerRésultat attendu :
openssl s_client -connect <fqdn-manager>:8460 </dev/null | openssl x509 -noout -issueraffiche l'émetteur de votre PKI.
Autres noms pour l'écoute des agents (une IP virtuelle, un alias DNS) : ajoutez NM_AGENT_TLS_SANS=<nom1>,<nom2>
dans server.env puis redémarrez. Le certificat de l'autorité qu'épinglent les agents s'exporte avec
navin-manager ca-export --out <fichier>, et son empreinte s'affiche à côté de chaque jeton d'amorçage.
Proxy inverse
Le Manager sert lui-même le TLS sur ses deux ports et n'a pas besoin de proxy inverse. Il ne lit pas les en-têtes
X-Forwarded-* (proxy_headers est désactivé), et l'écoute des agents vérifie le certificat client de chaque
agent : les agents doivent donc joindre le port 8461 directement, sans terminaison TLS intermédiaire. Renseignez
public_url et agent_url quand les opérateurs ou les agents utilisent un autre nom que le FQDN de l'hôte.
Installation guidée
os/install/navin-install installe un serveur autonome ou un cluster (le Manager, puis ses nœuds) depuis une archive
hors ligne par famille (navin-install-<version>-debian, -rhel, -arch), vérifie chaque hôte avant toute
modification et reprend là où il s'est arrêté quand on le relance.
sha256sum -c navin-install-<version>-rhel.tar.gz.sha256
tar xzf navin-install-<version>-rhel.tar.gz && cd navin-install-<version>-rhel
sudo ./navin-install preflight manager
sudo ./navin-install manager --cluster <nom-cluster> --mode production
sudo ./navin-install join-command --nodes 3 --hours 24
<nom-cluster> : lettres minuscules, chiffres et tirets. join-command affiche la commande à lancer sur chaque
nœud (voir Installer l'agent Navin). Le guide complet est os/install/README.fr.md.
Vérifier
sudo navinctl status
sudo navinctl check
curl -sk https://<fqdn-manager>:8460/api/v1/version
Résultat attendu : navin-manager.service est enabled et active, navinctl check affiche
settings are valid for this environment, /api/v1/version renvoie la version du serveur, et la console montre la
page Système avec la base de données et le moteur d'opérations en bonne santé.
Étapes suivantes
- Charger le miroir hors ligne
- Installer l'agent Navin sur les hôtes
- Référence de configuration
- Guide de la console
- Mettre à niveau et désinstaller
Dépannage
| Symptôme | Cause | Correction |
|---|---|---|
not started, the settings are incomplete après l'installation | un contrôle de production échoue (souvent la base) | sudo runuser -u navin-manager -- navin-manager check, puis navin-manager-db local ou external |
NM_DATABASE_URL must use sslmode=require, verify-ca or verify-full in production | adresse externe sans TLS | ajoutez sslmode=verify-full&sslrootcert=<fichier-ac> |
master key file /etc/navin-manager/master.key is missing | clé supprimée ou master_key_file incorrect | restaurez la clé depuis le coffre ; navin-manager init-key n'en crée une nouvelle que pour une nouvelle installation |
NM_ADMIN_PASSWORD must be a strong one-time password in production | mot de passe initial faible dans server.env | 12 caractères ou plus, lettres et chiffres, pas navin |
| Le navigateur signale le certificat | le certificat autosigné est toujours en place | installez le certificat de votre PKI (Certificats TLS) |
| Le port 8460 est occupé | un autre programme l'écoute | ss -ltnp 'sport = :8460' |