Mettre à niveau le Navin Manager
Cette page met à niveau le serveur Navin Manager et les agents Navin vers une nouvelle version, depuis les paquets. Elle est menée par un administrateur système et dure environ 15 minutes pour le serveur, plus quelques minutes par hôte. Les services gérés par le Manager continuent de tourner pendant la mise à niveau : ils se mettent à niveau séparément depuis la page Cycle de vie (guide de la console).
Avant de commencer
- Lisez les notes de version ; les trois paquets (
navin-platform,navin-manager,navin-manager-agent) partagent une même version. - Sauvegardez la base du Manager (un
pg_dumpdenavin_manager) et gardez une copie de/etc/navin-manager(server.yaml,server.env,master.key,tls/). - Vérifiez qu'aucune opération n'est en cours : Opérations n'affiche aucune opération
running. - Vérifiez l'état actuel :
sudo navinctl statusetsudo runuser -u navin-manager -- navin-manager migrate --status.
Étapes
-
Mettre à niveau le paquet du serveur. Le paquet reconstruit
/opt/navin-manager/venvà partir des nouveaux paquets wheel (l'environnement précédent est restauré si la construction échoue), complèteserver.envsans écraser de valeur, conserveserver.yaml(%config(noreplace), conffile DEB,backuppacman) et redémarre le serveur en cours d'exécution.sudo apt update && sudo apt install --only-upgrade navin-manager # Ubuntusudo dnf upgrade navin-manager # RHEL, Rocky Linux, AlmaLinuxsudo pacman -Syu # Arch Linux (seule mise à niveau prise en charge)Avec les fichiers des paquets :
sudo apt install ./navin-manager_<version>_amd64.deb,sudo dnf upgrade ./navin-manager-<version>-1.el9.x86_64.rpmousudo pacman -U ./navin-manager-<version>-1-x86_64.pkg.tar.zst.Résultat attendu : le gestionnaire de paquets indique la nouvelle version ;
systemctl is-active navin-managerafficheactive.En cas d'échec :
navin-manager: the venv could not be built from /usr/share/navin-manager/wheelhouse; the previous venv is restored: installez le Python dont dépend le paquet, puis relancez la mise à niveau. -
Contrôler les migrations. L'unité applique les migrations en attente avant chaque démarrage.
--checksort avec 1 sauf si chaque migration est appliquée et inchangée.sudo runuser -u navin-manager -- navin-manager migrate --checkRésultat attendu : la dernière ligne ne compte que des migrations
applied, par exemple28 applied, 0 pending, 0 changed, 0 unknown(28 migrations dans la version 1.0.0).En cas d'échec :
pendingsignifie que le serveur n'a pas encore démarré (journalctl -u navin-manager) ;unknownsignifie que la base est plus récente que le paquet (retour à une version antérieure) : réinstallez le paquet le plus récent. -
Mettre à niveau les agents. Sur chaque hôte géré, mettez à niveau le paquet de l'agent ; le paquet redémarre un agent en cours d'exécution (
try-restart) et conserve son enregistrement (/var/lib/navin-manager-agent). Les services gérés continuent de tourner car l'unité n'arrête que le processus de l'agent (KillMode=process).sudo apt install --only-upgrade navin-manager-agent-go # Ubuntu, Debiansudo dnf upgrade navin-manager-agent-go # famille RHELsudo pacman -Syu # Arch LinuxRésultat attendu :
nm-agent --versionaffiche la nouvelle version et l'hôte esthealthydans Hôtes.En cas d'échec : voir Dépanner l'agent Navin.
Sur Arch Linux, le paquet du serveur dépend de la version de Python pour laquelle il a été construit (python>= et
python< la mineure suivante) : pacman refuse une mise à niveau de Python qui casserait l'environnement tant que la
version Navin construite pour le nouveau Python n'est pas installée. Mettez les deux à niveau dans le même
pacman -Syu.
Vérifier
sudo navinctl version
sudo navinctl check
Résultat attendu : les versions de navin-manager et navin-manager-agent-go sont les nouvelles, navinctl check
affiche settings are valid for this environment, et la page Système de la console montre la nouvelle version.
Étapes suivantes
Dépannage
| Symptôme | Cause | Correction |
|---|---|---|
| Le serveur ne redémarre pas après la mise à niveau | un nouveau contrôle de production échoue | sudo runuser -u navin-manager -- navin-manager check |
migrate --check signale changed | un fichier de migration a été modifié après sa publication | réinstallez le paquet de la version ; ne modifiez jamais une migration publiée |
| pacman refuse la mise à niveau de Python | la version Navin pour le nouveau Python n'est pas installée | mettez à niveau navin-manager dans la même transaction |