Aller au contenu principal

Matrice de compatibilité des systèmes d'exploitation

Cette page liste les systèmes pris en charge par le serveur Navin Manager, l'agent Navin et les hôtes gérés. Le tableau des hôtes est lu dans navin_manager/os_support.py, la définition unique appliquée par le contrôle préalable de l'agent et par le contrôle préalable SSH ; le tableau des paquets est vérifié dans les fichiers de navin-manager/packaging. Elle est générée par navin-manager/docs/tools/generate_reference.py : ne la modifiez pas à la main.

Systèmes certifiés​

La liste que la console affiche sur la page Système (carte Systèmes pris en charge) et que renvoie GET /api/v1/system/supported-os :

RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling)

Hôtes gérés​

La famille est lue dans ID de /etc/os-release, sinon dans ID_LIKE (rocky, almalinux, ol, centos, fedora donnent rhel ; ubuntu donne debian ; arch donne arch). Les versions d'Ubuntu se comparent sur majeure.mineure (22.04), les autres sur la version majeure (9.4 vaut 9). Architectures : x86_64 et aarch64 pour l'agent Go, toutes pour l'agent Python.

DistributionID (os-release)FamilleVersions certifiéesFin de vieGestionnaire de paquetsRemarques
RHELrhelRHEL8, 9, 10jusqu'à 7dnfAgent Python sur RHEL 8 : dnf install python39 d'abord.
Rocky LinuxrockyRHEL8, 9, 10jusqu'à 7dnfMêmes paquets que RHEL.
AlmaLinuxalmalinuxRHEL8, 9, 10jusqu'à 7dnfMêmes paquets que RHEL.
Oracle LinuxolRHEL8, 9jusqu'à 7dnfOracle Linux 10 passe avec un avertissement (non certifié).
CentOS StreamcentosRHEL9, 10jusqu'à 8dnfCentOS 7 et 8 sont en fin de vie.
UbuntuubuntuDebian22.04, 24.04jusqu'à 25.10aptUbuntu 26.04 passe avec un avertissement ; 25.10 et les versions plus anciennes non certifiées sont en fin de vie.
DebiandebianDebian12jusqu'à 11aptDebian 13 passe avec un avertissement.
Arch LinuxarchArch Linuxtoutes les versions (publication continue)jamaispacmanLes dérivées (Manjaro, EndeavourOS) passent avec un avertissement.

Verdicts du contrôle préalable​

Chaque hôte reçoit un verdict, le même dans le contrôle préalable de l'agent et dans le contrôle préalable SSH :

VerdictRésultat du contrôle préalableSignification
certifiedpassUne version pour laquelle les paquets de l'agent sont construits et testés.
uncertifiedwarningUne version plus récente d'une famille connue, ou une autre distribution de cette famille : autorisée, avec un avertissement.
end_of_lifeblockingUne version qui ne reçoit plus de correctifs de sécurité : toute installation est bloquée.
unsupportedblockingUne famille sans paquets Navin : toute installation est bloquée.

Paquets du Navin Manager et de l'agent​

Paquets construits par navin-manager/packaging/build-packages.sh et os/build.sh, rangés sous os/<paquet>/<famille>/.

ProduitPaquetFormatSystèmesArchitecturesPythonRemarques
Serveur Navin Managernavin-manager-<version>-1.el9.x86_64.rpmRPMFamille RHEL 8, 9 et 10 : RHEL, Rocky Linux, AlmaLinux, Oracle Linux 8/9, CentOS Stream 9/10 (un seul RPM pour toutes les versions)x86_64python3.12 (dépendance : AppStream en 8.10 et 9, BaseOS en 10)Recommande postgresql-server pour la base locale.
Serveur Navin Managernavin-manager_<version>_amd64.debDEBUbuntu 24.04amd64python3.12, python3.12-venv (dépendances)Recommande postgresql.
Serveur Navin Managernavin-manager-<version>-1-x86_64.pkg.tar.zstpacmanArch Linuxx86_64Le Python d'Arch Linux au moment de la construction (python>= et python< la mineure suivante)postgresql facultatif pour la base locale.
Agent Navin (Go, livré)navin-manager-agent-go-<version>-1.<arch>.rpmRPMFamille RHEL 8 à 10x86_64, aarch64aucun (binaire statique)Fournit navin-manager-agent et entre en conflit avec lui ; requiert shadow-utils (useradd, usermod) et procps-ng (sysctl), recommande podman.
Agent Navin (Go, livré)navin-manager-agent-go_<version>_<debarch>.debDEBUbuntu 22.04, 24.04, Debian 12amd64, arm64aucun (binaire statique)Dépend de systemd, passwd (useradd, usermod) et procps (sysctl) ; recommande podman et uidmap.
Agent Navin (Go, livré)navin-manager-agent-go-<version>-1-<arch>.pkg.tar.zstpacmanArch Linuxx86_64, aarch64aucun (binaire statique)En conflit avec navin-manager-agent ; dépend de systemd, shadow et procps-ng, podman facultatif.
Agent Navin (Python, référence)navin-manager-agent-<version>-1.noarch.rpmRPMFamille RHEL 8 à 10noarchpython3 >= 3.9 ou python39 ou python3.11Nécessite aussi openssl, tar, shadow-utils et procps-ng ; recommande podman.
Agent Navin (Python, référence)navin-manager-agent_<version>_all.debDEBUbuntu 22.04, 24.04, Debian 12allPython 3.9 ou plus récentMême commande et même unité que l'agent Go.
Agent Navin (Python, référence)navin-manager-agent-<version>-1-any.pkg.tar.zstpacmanArch LinuxanyPython d'Arch LinuxMême commande et même unité que l'agent Go.

Hôte du serveur Navin Manager​

  • Famille RHEL 8, 9 ou 10 (RHEL, Rocky Linux, AlmaLinux, Oracle Linux 8/9, CentOS Stream 9/10) avec python3.12 : un seul RPM pour toutes les versions (Requires: python3.12, AppStream en 8.10 et 9, BaseOS en 10 ; RHEL 10 n'a pas de paquet python3.11).
  • Ubuntu 24.04 avec python3.12 et python3.12-venv (DEB).
  • Ubuntu 22.04 : hôte géré seulement (agents). Il ne fournit aucun Python 3.11 ou plus récent maintenu, que le serveur exige.

Méthode python des services​

Avec la méthode python, l'interpréteur d'un service est choisi par hôte : le Python de l'hôte quand le service fonctionne avec lui, sinon le premier interpréteur du service (python.interpreter, puis python.interpreters) que la version du système de l'hôte fournit dans ses dépôts maintenus. Le tableau est lu dans navin_manager/os_support.py (PYTHONS) :

SystèmesInterpréteurs fournis
RHEL 8, 9python3.12, python3.11
RHEL 10python3.12, python3.14
Rocky Linux 8, 9python3.12, python3.11
Rocky Linux 10python3.12, python3.14
AlmaLinux 8, 9python3.12, python3.11
AlmaLinux 10python3.12, python3.14
Oracle Linux 8, 9python3.12, python3.11
CentOS Stream 9python3.12, python3.11
CentOS Stream 10python3.12, python3.14
Ubuntu 22.04python3.10
Ubuntu 24.04python3.12
Debian 12python3.11

Quand une version certifiée ne fournit aucun des interpréteurs d'un service et que le Python de l'hôte n'en fait pas partie, l'installation est refusée avec HTTP 409 python_interpreter_unavailable : choisissez une autre méthode pour ce service (binaire ou podman), ou un autre hôte. Sur une version non certifiée, et sur Arch Linux (rolling), l'interpréteur préféré du service (python.interpreter) est conservé.

Prérequis vérifiés sur chaque hôte​

  • Système d'exploitation : verdict du tableau ci-dessus (contrôle os).
  • Python : le contrôle python passe avec Python 3.9 ou plus récent (navin_manager/preflight.py). Avec l'agent Go, Python n'est nécessaire que sur les hôtes qui exécutent un composant python.venv.
  • Podman : le contrôle podman avertit si Podman est absent ; la méthode podman l'installe comme prérequis de l'hôte (packages.install).
  • Outils : openssl et tar pour l'agent Python ; tar est installé comme prérequis quand un artefact doit être extrait.
  • Horloge synchronisée (chronyd ou systemd-timesyncd), systemd, SELinux, limite de fichiers ouverts : vérifiés par le contrôle préalable, sous forme d'avertissements dans un cluster bac à sable.