Modèles de VM
Les modèles de VM servent dans OpenVLE de base pour la création de machines virtuelles.
Ils contiennent un environnement système préinstallé avec tous les outils et services nécessaires et sont généralement utilisés dans le cadre d'environnements ou d'événements.
Grâce aux modèles, de nouvelles VM peuvent être déployées rapidement et de manière cohérente.
Où trouver cette section ?
Via le menu principal : Modèles de VM
Également accessible via : Accessible via les machines virtuelles ou les connexions
Aperçu des fonctionnalités
- Afficher, créer, modifier et supprimer des modèles de VM
- Importer des templates existants depuis Proxmox VE
- Associer des modèles à des systèmes d'exploitation et des applications
- Définir des paramètres techniques comme le CPU, la RAM et la taille du disque
- Attribuer des métadonnées (tags) et des descriptions pour une meilleure organisation
Aperçu des champs importants
| Nom du champ | Description |
|---|---|
CPU | Nombre de vCPU que les VM basées sur ce modèle recevront. La valeur détermine la puissance de calcul de chaque machine créée. |
Description | Champ de texte libre pour la documentation ou les commentaires sur le modèle de VM. Prend en charge la syntaxe Markdown (par ex. pour les listes ou les mises en évidence). |
Infos Proxmox VE | Attributions internes au système vers Proxmox VE, composées du **VMID** (identifiant unique sur l'hôte) et du **nom du noeud** (système hôte au sein du cluster). Ces champs sont gérés automatiquement et sont en lecture seule. |
Mémoire vive | Mémoire vive (RAM) en gigaoctets attribuée aux nouvelles VM. Influence directement les performances des machines. |
Nom | Nom du modèle de VM. Affiché dans l'ensemble de l'interface et doit être choisi de manière unique et explicite, par ex. "Debian12-Base" ou "Windows10-Formation". |
Système d'exploitation | Le système d'exploitation sous-jacent du modèle. Celui-ci est utilisé pour la configuration automatique et le filtrage dans le système. |
Importer un modèle de VM
Les modèles de VM déjà présents sur le serveur Proxmox VE peuvent être importés dans OpenVLE. Cela permet de réutiliser directement les modèles existants au sein d'OpenVLE.
Pour cela, il faut indiquer le VMID Proxmox du modèle souhaité sous Modèles de VM -> Importer.
Ensuite, les informations du modèle sont automatiquement chargées depuis le serveur Proxmox VE.
Ces données importées peuvent être ajustées si nécessaire -- un ajustement n'est toutefois généralement pas nécessaire, sauf pour le champ "Système d'exploitation".
Comme le serveur Proxmox VE ne peut pas lire cette information de manière exacte, elle doit être indiquée manuellement une seule fois.
OpenVLE ne peut lire que les modèles de VM du serveur Proxmox VE pour lesquels le token API OpenVLE dispose des permissions correspondantes dans le cluster Proxmox VE.
Si les permissions du token API ont été configurées conformément à la documentation, OpenVLE ne peut voir que les modèles de VM (et les VM) au sein du pool Proxmox associé.
Il est donc impératif d'attribuer les modèles de VM à ce pool dans le serveur Proxmox VE.
Dans le cas contraire, l'importation entraîne une erreur "Modèle de VM introuvable".
Créer un modèle de VM
La VM qui doit servir de base au modèle de VM doit être éteinte. Seules les VM éteintes peuvent être copiées en modèle de VM. Arrêtez la VM au préalable via OpenVLE si nécessaire.
- Ouvrez la section Modèles de VM dans le menu principal.
- Cliquez sur Ajouter pour créer un nouveau modèle de VM.
- Sélectionnez la VM souhaitée comme base.
- Saisissez un nom pour le modèle de VM.
- Les autres champs sont automatiquement préremplis sur la base de la VM choisie. Ils peuvent être ajustés si nécessaire.
- Enregistrez le modèle de VM.
- Le modèle de VM est maintenant créé automatiquement en arrière-plan.
- Utilisez ce modèle de VM pour créer de nouvelles machines virtuelles ou préparer des événements.
Lors de la création d'un modèle de VM, les associations suivantes sont automatiquement créées ou héritées :
- Applications ↔ VM : Toutes les applications assignées à la VM sont automatiquement assignées au nouveau modèle de VM.
- Modèles de connexion ↔ VM : Tous les modèles de connexion de la VM sont copiés et assignés au modèle de VM.
Modifier un modèle de VM
- Ouvrez la section Modèles de VM dans le menu principal.
- Recherchez le modèle de VM souhaité dans la liste.
- Cliquez sur Modifier ou ouvrez le menu contextuel du modèle de VM et sélectionnez Modifier.
- Le formulaire affiche toutes les données actuelles du modèle de VM.
- Ajustez les champs souhaités, par ex. le nom, la description, le CPU, la mémoire vive ou le système d'exploitation.
- Enregistrez les modifications.
- La mise à jour est appliquée en arrière-plan.
Les modifications des modèles de VM n'affectent pas les VM déjà créées.
Supprimer un modèle de VM
- Ouvrez la section Modèles de VM dans le menu principal.
- Recherchez le modèle de VM souhaité dans la liste.
- Cliquez sur Supprimer ou ouvrez le menu contextuel du modèle de VM et sélectionnez Supprimer.
- Confirmez la suppression dans la boîte de dialogue affichée.
- Le modèle de VM est alors définitivement supprimé.
- Une fois le processus terminé, le modèle de VM disparaît de la vue d'ensemble.
Lors de la suppression d'un modèle de VM, tous les modèles de connexion associés sont automatiquement supprimés.
Cette opération ne peut pas être annulée.
Exigences pour les modèles de VM
Pour qu'OpenVLE puisse communiquer correctement avec les différentes machines virtuelles, certaines conditions préalables doivent être remplies lors de la création des modèles de VM.
Pour tous les modèles, quel que soit le système d'exploitation :
- Qemu Guest Agent doit être installé et activé (dans la VM et sur l'hôte PVE).
- Cloud-Init doit être installé et activé pour qu'OpenVLE puisse contrôler les automatisations telles que les connexions et les configurations réseau.
La plupart des exigences ne doivent être mises en oeuvre qu'une seule fois pour le modèle maître respectif par système d'exploitation.
Toutes les VM ou modèles ultérieurs basés sur celui-ci reprennent automatiquement les paramètres.
Les étapes suivantes ne sont pas encore entièrement documentées.
Les instructions pour Linux sont largement testées, tandis que la configuration Windows est encore en cours d'extension.
Configuration initiale
Ces étapes ne doivent être effectuées qu'une seule fois par système d'exploitation et modèle maître :
- Debian/Ubuntu
- Arch Linux
- RHEL/CentOS/Fedora
- OpenSUSE
- Windows
- Autres
sudo apt update
sudo apt install qemu-guest-agent cloud-init
sudo pacman -Syu
sudo pacman -S qemu-guest-agent cloud-init
sudo dnf update
sudo dnf install qemu-guest-agent cloud-init
sudo zypper refresh
sudo zypper install qemu-guest-agent cloud-init
- Installer et configurer les pilotes VirtIO
- Installer et activer le Qemu Guest Agent
- Installer et activer Cloudbase-Init
- Désactiver BitLocker (
manage-bde -off C:) - Supprimer les applications Windows Store superflues
Les paquets qemu-guest-agent et cloud-init doivent être installés et
configurés. Veuillez consulter la documentation officielle du
système d'exploitation pour trouver les commandes correspondantes
d'installation et de mise à jour.
Préparation avant la conversion
Ces étapes doivent être effectuées à chaque fois avant qu'une VM ne soit convertie en modèle :
- Debian/Ubuntu
- Arch Linux
- RHEL/CentOS/Fedora
- OpenSUSE
- Windows
- Autres
su root
rm -rf /etc/cloud/cloud-init.disabled /tmp/* /var/tmp/*
apt clean && apt autoclean
cloud-init clean
truncate -s 0 /etc/machine-id /var/lib/dbus/machine-id
find /var/log -type f -exec truncate -s 0 {} \;
find /var/log -type f -regex ".*\.log\.[0-9]*\(\.gz\)?$" -delete
find /var/log -type f -name "*.log.*.gz" -delete
find / -name *.bash_history -exec rm -f {} \;
find / -name *.sh_history -exec rm -f {} \;
find / -name *.zsh_history -exec rm -f {} \;
find / -name known_hosts -exec rm -f {} \;
history -c
su root
rm -rf /etc/cloud/cloud-init.disabled /tmp/* /var/tmp/*
pacman -Sc && pacman -Scc
cloud-init clean
truncate -s 0 /etc/machine-id /var/lib/dbus/machine-id
find /var/log -type f -exec truncate -s 0 {} \;
find /var/log -type f -regex ".*\.log\.[0-9]*\(\.gz\)?$" -delete
find /var/log -type f -name "*.log.*.gz" -delete
find / -name *.bash_history -exec rm -f {} \;
find / -name *.sh_history -exec rm -f {} \;
find / -name *.zsh_history -exec rm -f {} \;
find / -name known_hosts -exec rm -f {} \;
history -c
su root
rm -rf /etc/cloud/cloud-init.disabled /tmp/* /var/tmp/*
dnf clean all && dnf autoremove
cloud-init clean
truncate -s 0 /etc/machine-id /var/lib/dbus/machine-id
find /var/log -type f -exec truncate -s 0 {} \;
find /var/log -type f -regex ".*\.log\.[0-9]*\(\.gz\)?$" -delete
find /var/log -type f -name "*.log.*.gz" -delete
find / -name *.bash_history -exec rm -f {} \;
find / -name *.sh_history -exec rm -f {} \;
find / -name *.zsh_history -exec rm -f {} \;
find / -name known_hosts -exec rm -f {} \;
history -c
su root
rm -rf /etc/cloud/cloud-init.disabled /tmp/* /var/tmp/*
zypper clean && zypper clean --all
cloud-init clean
truncate -s 0 /etc/machine-id /var/lib/dbus/machine-id
find /var/log -type f -exec truncate -s 0 {} \;
find /var/log -type f -regex ".*\.log\.[0-9]*\(\.gz\)?$" -delete
find /var/log -type f -name "*.log.*.gz" -delete
find / -name *.bash_history -exec rm -f {} \;
find / -name *.sh_history -exec rm -f {} \;
find / -name *.zsh_history -exec rm -f {} \;
find / -name known_hosts -exec rm -f {} \;
history -c
wevtutil cl System
wevtutil cl Application
wevtutil cl Security
Clear-History
Le paquet cloud-init doit être réinitialisé afin qu'il s'exécute correctement au prochain démarrage.
Il est également recommandé de supprimer ou vider les entrées de journal, les caches de paquets, les historiques du shell, les clés SSH et l'identifiant machine.
Veuillez consulter la documentation officielle du système d'exploitation pour trouver les commandes de configuration correspondantes.
Après avoir terminé ces étapes, la VM peut être arrêtée et convertie en modèle de VM.
Exemple ou cas d'utilisation
Un administrateur système souhaite créer un nouveau modèle Debian pour les environnements de formation. Cette personne installe dans la VM le Qemu Guest Agent et Cloud-Init, exécute les commandes de nettoyage puis convertit la machine en modèle. Ensuite, ce modèle peut être utilisé dans OpenVLE pour déployer rapidement de nouvelles VM pour des événements ou des tests.
Remarques / Particularités
-
Les modèles de VM constituent la base de toutes les machines virtuelles créées automatiquement dans OpenVLE.
Les modifications d'un modèle de VM n'affectent pas rétroactivement les VM déjà créées. -
Lors de la création ou de l'importation d'un modèle de VM, une tâche est lancée en arrière-plan.
Vous pouvez suivre la progression et les éventuels messages d'erreur dans la section Système -> Tâches. -
Un modèle de VM ne peut être importé ou créé avec succès que si le Qemu Guest Agent et Cloud-Init sont correctement configurés au sein du système.
-
Lorsqu'un modèle de VM est supprimé, tous les modèles de connexion associés sont automatiquement supprimés.
Cette opération ne peut pas être annulée. -
Les modèles de VM importés sont automatiquement associés aux informations Proxmox VE correspondantes (noeud, VMID).
Ces champs sont en lecture seule et servent à la synchronisation avec le cluster. -
Les modifications du CPU, de la RAM ou du système d'exploitation ne prennent effet que sur les nouvelles machines virtuelles créées à partir du modèle de VM mis à jour.
-
Les modèles de VM qui se trouvent dans Proxmox VE en dehors du pool attribué au token API OpenVLE ne peuvent pas être importés.
Assurez-vous donc que tous les modèles pertinents sont correctement attribués. -
Pour une gestion uniforme, il est recommandé de maintenir un modèle maître par système d'exploitation, régulièrement mis à jour (par ex. avec des correctifs de sécurité ou des mises à jour logicielles).
De nouveaux modèles de VM peuvent ensuite être dérivés de ce modèle maître. -
Lors de la conversion d'une VM en modèle de VM, il est recommandé d'exécuter au préalable un script de nettoyage (voir la section Préparation avant la conversion) pour supprimer les identifiants machine, les fichiers journaux et les clés SSH.
-
L'affichage des modèles de VM se met à jour automatiquement de manière régulière tant que la section est ouverte.
Relations avec d'autres objets
De nombreux objets dans OpenVLE sont liés à d'autres éléments du système. L'aperçu suivant montre quelles relations existent et si elles déclenchent certaines automatisations.
| Objet | Description | Comportement automatique |
|---|---|---|
| Applications | Un nombre illimité d'applications peut être attribué à un modèle de VM. | Aucune automatisation. |
| Changelogs | Toutes les modifications de l'objet sont automatiquement enregistrées. | Suppression automatique lors de la suppression de l'objet. |
| Modèles de connexion | Un nombre illimité de modèles de connexion peut être attribué à un modèle de VM. | Suppression automatique lors de la suppression du modèle de VM. |
| Permissions | Les permissions spécifiques à l'objet peuvent être attribuées directement à l'objet. | Suppression automatique lors de la suppression de l'objet. |
| Système d'exploitation | Exactement un système d'exploitation peut être attribué à un modèle de VM. | Aucune automatisation. |
| Tags | Les objets peuvent être marqués avec un nombre quelconque de tags pour les catégoriser ou les filtrer. | Suppression automatique lors de la suppression de l'objet. |
| Tasks | Tâches internes au système, automatiquement créées et surveillées lors d'actions (par ex. démarrage, arrêt ou clonage). | Création automatique pour certains processus ou actions. |
Permissions requises
Les permissions requises pour les actions peuvent être attribuées via des rôles ou individuellement. Si certains droits vous manquent, les fonctions correspondantes dans l'interface utilisateur sont masquées ou désactivées.
| Action | Permission requise | Chemin | Informations supplémentaires |
|---|---|---|---|
| Afficher les modèles de VM | templates_read | / ou /<objectID> | |
| Créer des modèles de VM | templates_create | / | |
| Modifier des modèles de VM | templates_update | / ou /<objectID> | |
| Supprimer des modèles de VM | templates_delete | / ou /<objectID> | |
| Afficher les machines virtuelles | vms_read | / |
Exemple :
/4a3bc312-d1af-4b3f-b222-f5e9cecbf007 – L'utilisateur n'a alors accès qu'à cet unique objet.Si le chemin / est utilisé, la permission s'applique globalement à tous les objets de ce type.
Pour les permissions *_create, seul le chemin global / est autorisé.