Aller au contenu

Documentation

Proxmox VE

Proxmox est l’intégration hyperviseur. Elle crée des machines virtuelles en clonant un modèle, suit la tâche pendant son exécution et maintient le panneau en phase avec ce que le cluster rapporte réellement.

Ce qu’il vous faut

Proxmox n’utilise pas de mot de passe pour l’automatisation. Vous créez un jeton d’API, composé d’un identifiant en trois parties et d’un secret qui ne vous est montré qu’une fois.

  • Hôte : l’URL de base complète de l’API. Elle doit être en HTTPS ; le port 8006 est renseigné pour vous si vous l’omettez.
  • Identifiant du jeton : sous la forme user@realm!tokenname, exactement comme Proxmox l’écrit.
  • Secret du jeton : la valeur que Proxmox affiche une seule fois à la création du jeton.
  • Empreinte TLS : le certificat du nœud lui-même, pas celui de l’autorité qui l’a émis.
shell
openssl s_client -connect pve.example.com:8006 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Les commandes et les sorties de terminal sont en anglais partout, dans le panneau comme dans ces pages. Un seul texte, une seule vérité : ce que vous lisez ici est littéralement ce que votre hôte affichera.
Désactivez la séparation des privilèges sur le jeton, ou accordez-lui explicitement ses propres droits. Lorsqu’elle est active, le jeton ne reçoit aucun des droits de l’utilisateur auquel il appartient et chaque appel échoue pour une raison que Proxmox n’explicite pas.

Paramètres

Quatre choix non secrets, dans l’onglet des paramètres. Sans eux, l’intégration est connectée mais ne peut rien créer.

  • Nœud : le nœud du cluster sur lequel construire. Le panneau propose les nœuds que votre agent a réellement vus ; s’il n’en a encore vu aucun, vous pouvez en saisir un.
  • Stockage : l’endroit où vont les disques des nouvelles machines.
  • Bridge : facultatif. Il est enregistré et utilisé là où la plateforme crée une machine à partir de rien, mais un clone hérite du bridge du modèle dont il est issu.
  • Plage d’identifiants de machines : le bloc d’identifiants de VM Proxmox à l’intérieur duquel Provibr peut attribuer.

La plage est la limite de sécurité

C’est le paramètre le plus important de la page. Provibr n’attribue des identifiants qu’à l’intérieur de la plage que vous lui donnez et ne touche jamais à ce qui se trouve en dehors. Gardez vos propres machines de production hors de la plage et elles resteront hors de portée, quoi que l’on clique dans le panneau.

Les identifiants ne sont jamais réutilisés, pas même après la suppression d’une machine. Un message de statut tardif venant d’une machine disparue ne peut donc jamais atterrir sur une machine nouvelle.
Un modèle que vous associez à un système d’exploitation doit se trouver hors de la plage, et le panneau le refuse dans le cas contraire : à l’intérieur de la plage, l’attribution finirait par distribuer l’identifiant du modèle lui-même et la commande suivante clonerait à partir d’elle-même.

Comment une machine est créée

Créer une machine, c’est une tâche de clonage suivie d’un petit nombre d’appels de configuration. Le panneau suit la tâche et affiche une progression réelle là où Proxmox la rapporte.

  1. Cloner le modèle que vous avez choisi, sur le nœud défini dans les paramètres.
  2. Agrandir le disque de démarrage à la taille commandée. Un disque ne peut que grandir ; si le modèle est déjà plus grand, la machine conserve la taille du modèle.
  3. Appliquer les cœurs, la mémoire et les paramètres cloud-init (adresse, passerelle, résolveurs, utilisateur, clés SSH) en un seul appel de configuration.
  4. Activer le pare-feu et démarrer la machine.
Après le démarrage, la machine se signale en cours de configuration plutôt qu’en marche, et ne passe en marche qu’une fois que cloud-init a fait son travail à l’intérieur de l’invité. C’est pourquoi une machine fraîchement créée ne passe pas au vert immédiatement.

Conteneurs Linux

Une connexion Proxmox porte des machines virtuelles et des conteneurs. Le forfait décide laquelle des deux une commande produit, et à partir de là le genre voyage avec chaque commande au lieu d’être deviné. Un conteneur n’est pas une machine virtuelle en plus petit : il partage le noyau de son hôte, c’est pourquoi il est bon marché et pourquoi une poignée de choses n’y existent tout simplement pas.

  • Le forfait dit machine virtuelle, conteneur, ou l’un ou l’autre. Avec l’un ou l’autre, le client choisit pendant la commande, et la liste des images suit ce choix au lieu d’en remplir une en silence.
  • Un conteneur n’est pas cloné mais déballé, depuis un modèle de conteneur présent sur la connexion. C’est une autre sorte de source que les modèles à partir desquels une machine virtuelle est clonée, et une image qui n’a qu’un modèle de conteneur n’apparaît pas dans la liste des machines virtuelles.
  • Unprivileged est le réglage par défaut. Le compte racine à l’intérieur du conteneur n’est pas la racine de l’hôte, et c’est ce que vous voulez sauf si quelque chose exige expressément le contraire.
  • Le stockage est un volume racine plus des points de montage. Le panneau les montre sous forme de clé, de source et de chemin dans l’invité ; le chemin de l’hôte n’y figure pas à dessein, car il en dit plus sur l’hôte que sur la machine.

Chaque commande porte le genre avec elle, et une commande qui ne convient pas est refusée avant de devenir une tâche, avec le motif à l’écran. Deux de ces motifs signifient vraiment des choses différentes.

  • Jamais : démarrer depuis le réseau, une machine vide, et le micrologiciel ou l’ordre de démarrage. Un conteneur ne démarre pas depuis une carte réseau et n’a pas de micrologiciel à interroger.
  • Pas encore : disques, cartes réseau et l’écran du matériel. Un conteneur a bel et bien du stockage et du réseau, sous une autre forme, et réutiliser pour eux les champs d’une machine virtuelle donnerait aux mêmes mots un second sens.
  • Disponible : créer, démarrer, arrêter, éteindre, état, supprimer, suspendre, reprendre, réinstaller, le pare-feu et sa protection contre les adresses usurpées.
  • La console est un cas à part, et c’est un pas encore avec un motif : la console d’une machine virtuelle est un écran, et un conteneur n’en a pas. Ce qu’il a, c’est un terminal, et c’est un autre protocole et un autre client.

Les sauvegardes comportent une différence facile à manquer, et elle fonctionne exactement à l’envers d’une machine virtuelle. Un point de montage n’est dans la sauvegarde que s’il a été coché pour cela ; un disque de machine virtuelle y est tant qu’il n’a pas été décoché. Un conteneur avec un volume de données que personne n’a coché a donc une sauvegarde qui a l’air complète et ne contient que le volume racine.

Le panneau indique pour chaque point de montage s’il est dans la sauvegarde, et n’appelle jamais complète une couverture non mesurée. Les bind mounts et les périphériques transmis ne suivent de toute façon jamais : ce qu’il y a derrière appartient à l’hôte et non à la machine.

Réinstaller un conteneur est un remplacement et non un clonage par-dessus. Le panneau montre d’abord ce qu’il advient de chaque point de montage, et ne remplace la machine qu’ensuite sous un verrou unique : le volume racine est reconstruit, et ce qui figurait comme conservé est remis en place. Ce qui n’était pas dans cette liste n’est pas restauré.

Cloud-init

Provibr écrit un ensemble restreint et fixe de clés cloud-init, et rien d’autre : les quatre configurations réseau, les résolveurs et le domaine de recherche, l’utilisateur, le type de configuration, les clés SSH, le mot de passe et l’exécution ou non d’une mise à niveau des paquets au premier démarrage. Cette liste existe des deux côtés : un champ qui se trouve porter le nom cloud-init ne peut donc jamais réécrire un paramètre de machine quelconque.

Le mot de passe root n’apparaît jamais dans la piste d’audit. Seul le nom du champ est consigné ; la valeur circule séparément et n’est pas stockée.

L’option de mise à niveau au premier démarrage nécessite Proxmox 8.1 ou plus récent. Sur un nœud plus ancien, l’appel est relancé sans elle au lieu d’échouer.

Ce que vous pouvez faire ensuite

Démarrer, forcer l’arrêt, arrêter, mettre en pause, reprendre, actualiser, réinstaller et supprimer. Un arrêt demande d’abord poliment à l’invité et bascule vers un arrêt net après un délai.

Les disques et les cartes réseau peuvent être ajoutés, redimensionnés, rattachés et détachés. Un disque ne peut que grandir. Le disque de démarrage et le disque cloud-init ne peuvent pas être détachés, pas plus que la première carte réseau.

Le pare-feu dispose d’une liste de règles modifiable et d’un journal, tous deux lus et écrits sur le nœud lui-même.

Bon à savoir

  • Un clone hérite du bridge réseau de son modèle. Le bridge défini sur le plan et sur l’intégration est enregistré et utilisé ailleurs, mais il n’est pas appliqué à un clone.
  • L’espace disque utilisé à l’intérieur d’une machine virtuelle n’est pas visible pour Proxmox : ce graphique affiche donc la taille allouée et aucune courbe d’utilisation. Les autres mesures sont réelles.
  • Les modèles sont exclus de l’interrogation et ne comptent jamais dans votre licence.
  • Les machines présentes sur votre cluster mais absentes de Provibr sont ignorées à chaque interrogation. Elles ne peuvent pas non plus être importées depuis Proxmox : il n’existe aujourd’hui aucun import pour les hyperviseurs.