Aller au contenu principal

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_dump de navin_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 status et sudo runuser -u navin-manager -- navin-manager migrate --status.

Étapes​

  1. 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ète server.env sans écraser de valeur, conserve server.yaml (%config(noreplace), conffile DEB, backup pacman) et redémarre le serveur en cours d'exécution.

    sudo apt update && sudo apt install --only-upgrade navin-manager # Ubuntu
    sudo dnf upgrade navin-manager # RHEL, Rocky Linux, AlmaLinux
    sudo 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.rpm ou sudo 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-manager affiche active.

    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.

  2. Contrôler les migrations. L'unité applique les migrations en attente avant chaque démarrage. --check sort avec 1 sauf si chaque migration est appliquée et inchangée.

    sudo runuser -u navin-manager -- navin-manager migrate --check

    Résultat attendu : la dernière ligne ne compte que des migrations applied, par exemple 28 applied, 0 pending, 0 changed, 0 unknown (28 migrations dans la version 1.0.0).

    En cas d'échec : pending signifie que le serveur n'a pas encore démarré (journalctl -u navin-manager) ; unknown signifie que la base est plus récente que le paquet (retour à une version antérieure) : réinstallez le paquet le plus récent.

  3. 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, Debian
    sudo dnf upgrade navin-manager-agent-go # famille RHEL
    sudo pacman -Syu # Arch Linux

    Résultat attendu : nm-agent --version affiche la nouvelle version et l'hôte est healthy dans Hôtes.

    En cas d'échec : voir Dépanner l'agent Navin.

attention

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ômeCauseCorrection
Le serveur ne redémarre pas après la mise à niveauun nouveau contrôle de production échouesudo runuser -u navin-manager -- navin-manager check
migrate --check signale changedun fichier de migration a été modifié après sa publicationréinstallez le paquet de la version ; ne modifiez jamais une migration publiée
pacman refuse la mise à niveau de Pythonla version Navin pour le nouveau Python n'est pas installéemettez à niveau navin-manager dans la même transaction