Notre CLI opensource pour gérer efficacement vos clusters Proxmox VE !

15 Septembre 2025 • 5 min

Chez Enix, nous gérons de nombreuses plateformes Proxmox pour nos clients. Nos équipes sont donc souvent confrontées à des besoins divers en gestion de cluster Proxmox VE : audit et gestion des VM (serveurs virtuels), mises à jour, migrations, inventoriage, etc.

Bien que la GUI (interface web) de Proxmox VE soit déjà très complète, certaines opérations répétées en boucle peuvent s’avérer fastidieuses, notamment dans un contexte multi-cluster. D’autres opérations ne sont par ailleurs pas implémentées dans la GUI Proxmox, certainement trop lourdes à développer (gestion des quotas RAM/CPU par utilisateur par exemple).

Nous avons donc implémenté au fil des années pvecontrol, notre outil en CLI (ligne de commande) pour pouvoir effectuer ces tâches et administrer de multiples clusters Proxmox VE depuis son ordinateur personnel. Comme il nous est très utile, nous avons souhaité l’open sourcer et le partager au plus grand nombre sur notre dépôt GitHub.

Cet article décrit les principaux élements sur pvecontrol.

A qui s’adresse pvecontrol ?

L’outil pvecontrol a été conçu pour les équipes gérant un grand nombre de clusters Proxmox VE, la plupart du temps avec de nombreux hyperviseurs. Il simplifie la gestion aussi bien en environnement mono-cluster que multi-cluster.

Fonctionnalités clés

pvecontrol est un outil en CLI de gestion de clusters Proxmox avec ces trois principales fonctionnalités :

  • Listing des VMs multi-cluster : Visualisez l’état et les caractéristiques de toutes vos VMs sur vos différents clusters.

  • Drain intelligent des hyperviseurs : Libérez un hyperviseur en déplaçant les VMs vers d’autres nœuds en fonction de la capacité et de la disponibilité en CPU et en RAM.

  • Sanity Check : Vérifiez l’état de vos clusters Proxmox avant une maintenance ou détectez des anomalies, même en environnement haute disponibilité.

Installation

pvecontrol nécessite Python version 3.9 ou supérieure et il a été développé pour les versions Proxmox 8 et supérieures.

L’installation est simple avec pip, et il est recommandé d’utiliser pipx pour créer automatiquement un environnement virtuel dédié :

pipx install pvecontrol

Pour utiliser pvecontrol, vous devez créer un fichier de configuration YAML dans $HOME/.config/pvecontrol/config.yaml.

Ce fichier listera vos clusters et les informations d’authentification. Voici un exemple de configuration :

node:
  # Overcommit CPU factor
  # 1 = no overcommit
  cpufactor: 2.5
  # Memory to reserve for the system on a node (in bytes)
  memoryminimum: 8589934592
clusters:
  - name: fr-par1
    host: hostname.fr-par1
    user: pvecontrol@pve
    password: my.password.is.weak
    ssl_verify: true

  - name: fr-par-2
    host: hostname.fr-par-2
    user: $(echo $PVE_USER)
    password: $(echo $PVE_PASSWORD)
    ssl_verify: true
    node:
      cpufactor: 1

Dans la configuration présentée ci-dessus vous pourrez observer l’usage de commandes shell.

Cela vous permettra de récupérer des informations en passant par des binaires par exemple avec un gestionnaire de mot de passe.

Cette pratique a pour but de ne pas stocker de mot de passe directement sur votre ordinateur.

Connaître l’état d’un cluster proxmox

L’utilisation de pvecontrol est simple et intuitive. Par exemple, pour voir un récapitulatif de l’état du cluster fr-par1 configuré ci-dessus :

pvecontrol -c fr-par1 status
INFO:root:Proxmox cluster: fr-par1

  Status: healthy
  VMs: 20
  Templates: 10
  Metrics:
    CPU: 0.02/64 (0.0%), allocated: 9
    Memory: 15.98 GiB/314.67 GiB(5.1%), allocated: 12.00 GiB
    Disk: 82.15 GiB/1.75 TiB(4.6%)
  Nodes:
    Offline: 0
    Online: 2
    Unknown: 0

Lister les VMs d’un cluster Proxmox

pvecontrol -c fr-par1 vm list

vmlist

Drain d’un hyperviseur

Pour drainer un hyperviseur spécifique, utilisez la commande :

pvecontrol -c fr-par1 node evacuate pve-fr-par1-1

INFO:root:Proxmox cluster: fr-par1
Migrating VM 100 (test) from pve-fr-par1-1 to pve-fr-par1-2
Migrating VM 102 (test2) from pve-fr-par1-1 to pve-fr-par1-2
Confirm (yes):yes

Migrate VM: 101 / test-tag from pve-fr-par1-1 to pve-fr-par1-2
Migrate VM: 102 / test3 from pve-fr-par1-1 to pve-fr-par1-2

Sanity check d’un cluster Proxmox

Nous avons mis au point une série de tests basée sur notre expérience en terme d’hébergement et de gestion de clusters Proxmox. Ils ont pour objectif de nous assurer que nos clusters sont dans un état “sain”. Pour cela il suffit d’exécuter :

sanitychecks

Sur la capture d’écran ci-dessus trois tests sont éxécutés :

  • Test de chargement des serveurs physiques (nodes) : Vérifie que les serveurs physiques ont les ressources suffisantes.
  • Test de configuration de la haute disponibilité (ha_groups) : Vérifie que la configuration HA est correcte sur le cluster Proxmox.
  • Test de haute disponibilité des VMs (ha_vms) : Vérifie que la configuration des VMs (stockage paratagé, CPU) est hautement disponible si besoin de déplacer les VMs quand l’un des serveurs physiques du cluster est hors ligne.

pvecontrol vs Proxmox Datacenter Manager

Proxmox Datacenter Manager est sorti fin 2024 afin de simplifier la gestion multi-cluster Proxmox. Depuis, nous nous assurons de n’implémenter que des fonctionnalités complémentaires. Par ailleurs, les approches sont différentes.

Proxmox Datacenter Manager nécessite l’installation d’un serveur tiers qui se connecte à chaque cluster afin d’offrir une interface de gestion globale à tous les clusters enrôlés. De son côté, pvecontrol est simplement un outil CLI local qui ne nécessite aucun serveur. De plus, PDM ne permet pas comme PVEControl d’exécuter des tests poussés avec des vérifications métier avancés.

Si vous voulez en savoir plus sur PDM, vous pouvez aller lire notre article : Nous avons testé Proxmox Datacenter Manager !.

Roadmap

Les fonctionnalités listées ici sont indicatives et non exhaustives :

  • Répartiteur de charge: Recommander une répartition des VMs sur les différents hyperviseurs du cluster avec un système d’anti-affinité ;
  • Restauration de VMs: Permettre de restaurer un backup d’une VM ;
  • Gestion des stockages: Mettre à jour les paramêtres des stockages d’un cluster PVE ;
  • Gestion de PRA: Gérer la restauration d’architectures complètes automatiquement via un PBS sur un nouveau cluster Proxmox.

Nous faisons bien entendu en sorte de synchroniser nos développements avec ceux réalisés par les équipes Proxmox.

Conclusion

Cet outil pvecontrol est le fruit de notre expérience opérationnelle et de nos besoins spécifiques en matière de gestion de clusters à grande échelle. Nous sommes ravis de le partager avec la communauté Proxmox et nous espérons qu’il aidera à simplifier vos opérations.

N’hésitez pas à nous faire part de vos retours et suggestions directement sur notre projet Github.


Ne ratez pas nos prochains articles DevOps et Cloud Native! Suivez Enix sur Linkedin!