Modèles d'OS et ISO
Où trouver dans l'admin : Services › Virtual Machines › Template (
/vm/templates). Les templates Proxmox sont listés par cluster dans Infrastructure › Cloud provider › Providers › (cluster) › Clusters.
Description
Un modèle est l'image du système d'exploitation à partir de laquelle une nouvelle VM démarre. NexCMP ne stocke pas les images lui-même : il lit ce que CloudStack rapporte (modèles prêts et en vedette) ou ce que vous listez pour un cluster Proxmox, et vous permet de choisir celles qui sont vendues, avec un nom orienté client, une icône et un utilisateur de connexion. Cette page montre comment préparer des images qui fonctionnent bien avec NexCMP : connexion par mot de passe, mise à l'échelle en direct du processeur et de la RAM, fichier d'échange et disque racine qui s'adapte à la taille du forfait.
Prérequis
| Élément | Prérequis |
|---|---|
| Générateur de modèles CloudStack | Une machine Linux avec libguestfs-tools (virt-customize, virt-sparsify, guestfish), qemu-utils, curl et environ 5 Go de disque libre. Aucun KVM ni root n'est requis. Accès Internet pour les installations de paquets (ou construction avec --offline). |
| Emplacement du générateur | Il est fourni avec chaque version dans /opt/nexcmp/releases/<version>/share/templates/ sur le serveur du panneau. Vous n'avez pas besoin de l'exécuter là-bas : copiez le dossier sur n'importe quelle machine Linux. |
| Serveur Web | N'importe quel serveur HTTP(S) que la VM de stockage secondaire de CloudStack peut atteindre, pour publier le fichier .qcow2 terminé. Il n'a pas besoin d'être accessible depuis Internet. |
| CloudStack | Un compte autorisé à enregistrer des modèles, ainsi que l'identifiant de votre zone et d'un type d'OS correspondant. Voir CloudStack. |
| Proxmox VE | VM de modèles cloud-init avec l'agent invité QEMU, un par OS et par nœud. Voir Proxmox VE. |
| Dépend de | CloudStack ou Proxmox VE connectés au préalable. |
Préparer l'infrastructure
CloudStack : créer un modèle
Images de base prises en charge (l'image du fournisseur est téléchargée et sa somme de contrôle est vérifiée avant toute modification) :
| Image | --distro | Utilisateur de connexion |
|---|---|---|
| Ubuntu 22.04 | ubuntu-22.04 | ubuntu |
| Ubuntu 24.04 | ubuntu-24.04 | ubuntu |
| Debian 12 | debian-12 | debian |
| Rocky Linux 9 | rocky-9 | rocky |
Plus de distributions : ajoutez une ligne à distros.conf (URL de l'image, fichier de somme de contrôle, famille deb ou rpm).
Copiez le générateur sur une machine de construction et exécutez-le :
bashcp -r /opt/nexcmp/releases/<version>/share/templates ~/templates && cd ~/templates ./build-template.sh --distro ubuntu-24.04 --version v7 --work ./outAjoutez
--panel-url https://cloud.example.compour intégrer un agent de surveillance de premier démarrage optionnel qui s'inscrit auprès de votre panneau (HTTPS uniquement). Sans cela, aucun agent n'est ajouté. Autres options :--base <file>pour utiliser une image que vous avez téléchargée,--offlinepour ignorer les installations de paquets.Le résultat est
out/ubuntu-24.04-v7.qcow2et son.sha256. La construction se termine par l'exécution deverify-image.sh, qui inspecte l'image terminée en lecture seule et rejette une image défectueuse (elle est conservée sous le nom de.unverified). Vous pouvez l'exécuter à nouveau à tout moment :./verify-image.sh out/ubuntu-24.04-v7.qcow2 --no-agent.
Ce que le générateur intègre dans l'image :
| Élément | Raison |
|---|---|
qemu-guest-agent | CloudStack peut interroger la VM concernant les CPU et les IP, et la placer en veille pour les snapshots. |
cloud-init avec la source de données CloudStack, set_passwords à chaque démarrage, connexion SSH par mot de passe | Le mot de passe généré est récupéré depuis le routeur virtuel et Reset password fonctionne. |
| Une règle udev pour l'ajout à chaud de CPU et de RAM | Les vCPU et la RAM ajoutés à chaud s'activent d'eux-mêmes, permettant ainsi le redimensionnement à chaud et l'Auto Scaling. |
| Un service de fichier d'échange | Crée /swapfile de la plus petite valeur entre 50 % de la RAM et 4 GiB après l'agrandissement du disque. touch /etc/cmp-swap.disabled le désactive. |
cloud-init growpart et resizefs | Le petit disque racine s'agrandit à la taille du disque du forfait au premier démarrage. |
| machine-id vide, pas de clés d'hôte SSH | Chaque VM obtient sa propre identité. |
Nommer le modèle <OS> <version> <vN>
NexCMP active Auto Scaling pour les modèles dont le nom se termine par vN ou vN.M avec N de 6 ou plus (Ubuntu 24.04 v7, Rocky Linux 9 v7.1). Le générateur applique cette règle pour --version. Enregistrez le modèle avec le nom exact affiché.
Publiez le fichier et enregistrez-le dans CloudStack. Utilisez le SHA-256 affiché par la compilation et n'effectuez l'enregistrement qu'une fois le fichier entièrement écrit :
bashcmk list ostypes keyword="Ubuntu 24.04" filter=id,description cmk register template name="Ubuntu 24.04 v7" displaytext="Ubuntu 24.04 v7" \ url=https://files.example.com/ubuntu-24.04-v7.qcow2 zoneid=<zone-id> format=QCOW2 hypervisor=KVM \ ostypeid=<os-type-id> passwordenabled=true sshkeyenabled=true isdynamicallyscalable=true \ requireshvm=true isextractable=false ispublic=true isfeatured=true \ checksum="{SHA-256}<sha256 of the file>" \ details[0].guest.cpu.mode=host-passthrough details[0].rootDiskController=osdefaultpasswordenabled=truepermet à CloudStack de générer le mot de passe de la VM.isdynamicallyscalable=truepermet le redimensionnement à chaud.host-passthroughest nécessaire pour le démarrage des images récentes de Rocky et Alma ;osdefaultmaintient la portabilité du contrôleur de disque.
Attendez que le modèle atteigne Download Complete / Ready.
L'image du fournisseur conserve sa petite taille virtuelle (environ 3.5 GiB pour Ubuntu et Debian, 10 GiB pour Rocky). N'oubliez pas qu'un disque de forfait ne peut pas être plus petit que le disque du modèle.
Proxmox VE : créer un modèle
Créez un modèle de VM cloud-init par système d'exploitation sur chaque nœud sur lequel vous déployez, avec l'agent invité installé et la connexion root activée, puis enregistrez-le en tant que os-key=vmid. Les commandes complètes se trouvent dans Proxmox VE. Le générateur CloudStack ci-dessus n'est pas destiné à Proxmox : il configure cloud-init pour la source de données CloudStack.
ISO
Les clients montent leurs propres ISO via le module Images (CloudStack) ou le module Serveur dédié. Ceux-ci sont distincts des modèles d'OS de cette page. Voir Modules et Dedicated servers.
Connecter dans NexCMP
Ouvrez Services › Virtual Machines › Template. Cliquez sur Sync now ou patientez jusqu'à 15 minutes. La synchronisation ajoute les modèles prêts et mis en avant dans CloudStack.

Cliquez sur Edit sur un nouveau modèle et définissez ce que les clients voient :
Champ Exemple de valeur Nom d'affichage pour les clients Ubuntu 24.04 LTSFamille d'OS ubuntu(icône et utilisateur par défaut)Version 24.04Nom d'utilisateur de connexion ubuntu(Windows :Administrator; autre :root)Icône URL d'image, chemin ou nom Ordre 10Actif On Hot-plug vCPU/RAM (redimensionnement à chaud) Auto by name (v6 or later), Yes ou No (needs a restart) 
Activez le modèle. Un modèle que CloudStack ne liste plus est masqué automatiquement (et vous en êtes averti sur Telegram si configuré) ; il n'est jamais supprimé de NexCMP.
Remplacer un modèle par une version plus récente
Utilisez More › Replace with new version sur le modèle vendu. Choisissez le nouveau modèle prêt et actuellement désactivé. L'entrée vendue pointe alors vers la nouvelle version tout en conservant son nom, son ordre et son icône ; l'ancienne est désactivée comme solution de repli (pour revenir en arrière, utilisez Replace sur la nouvelle entrée. Les machines virtuelles en cours d'exécution ne sont pas touchées. Si la nouvelle version appartient à une autre famille de système d'exploitation, cochez d'abord la confirmation.
Vérification
- La ligne indique ready et, pour les versions nommées
vNavec N supérieur ou égal à 6, CPU hot-plug: supported. - Déployez une machine virtuelle de test à partir du modèle et vérifiez à l'intérieur :
- vous pouvez vous connecter avec le mot de passe affiché dans le portail ;
df -h /affiche la taille de disque du plan ;- après un redimensionnement à chaud (Change plan sans redémarrage),
nprocetfree -maugmentent ; swapon --showliste/swapfile(les disques disposant de moins de swap plus 2 GiB d'espace libre sont ignorés) ;systemctl is-active qemu-guest-agentafficheactive.
- Si vous avez intégré l'agent, la machine virtuelle apparaît dans les hôtes surveillés du panneau une minute après le premier démarrage. La machine virtuelle a besoin de sa propre adresse IP publique : le panneau la reconnaît par son IP source publique.
Limites et remarques
- Le générateur est réservé à Linux et produit des images Linux. D'autres images (par exemple Windows) peuvent être enregistrées dans CloudStack par d'autres moyens ; NexCMP liste ce que CloudStack rapporte.
- Seul l'agent amd64 est fourni ; les autres architectures ignorent l'installation de l'agent.
- L'image est vérifiée avec
guestfishmais n'est jamais démarrée par le générateur. Déployez toujours une machine virtuelle de test avant de vendre une nouvelle image. - Ignorez l'agent sur une machine virtuelle avec
touch /etc/cmp-agent.disabledavant le premier démarrage. Supprimez-le plus tard avecsystemctl disable --now cmp-agent cmp-agent-install; rm -rf /etc/cmp-agent /usr/local/bin/cmp-agent, puis supprimez l'agent dans la console d'administration.
Dépannage
| Symptôme | Cause | Solution |
|---|---|---|
virt-customize ne parvient pas à télécharger les paquets | La machine de construction n'a pas d'accès réseau sortant | Corrigez le DNS ou le proxy sur cette machine, ou effectuez la construction avec --offline sur une image de base qui contient déjà les paquets. |
libguestfs: error: /usr/bin/supermin exited with error status 1 | Le noyau de l'hôte n'est pas lisible par l'utilisateur actuel (Ubuntu) | sudo chmod +r /boot/vmlinuz*, ou exécutez la construction en tant que root. |
| La somme de contrôle diffère ou l'image du fournisseur n'existe plus | Les fournisseurs déplacent leurs fichiers « latest » | Téléchargez vous-même l'image, vérifiez-la par rapport au fichier de somme de contrôle du fournisseur et transmettez-la avec --base. |
| Rocky : un système XFS plus récent ne peut pas être monté | Le noyau de l'hôte est trop ancien | Construisez sur une machine dotée d'un noyau récent. |
--version must be v6 or higher | Le nom doit être vN avec N supérieur ou égal à 6 | Utilisez --version v7. |
--panel-url must be a plain https:// URL | L'agent est téléchargé et exécuté en tant que root, le HTTP non sécurisé est donc refusé | Utilisez une URL https:// sans espaces, guillemets ni chaîne de requête. |
| Le modèle reste not ready | CloudStack n'a pas terminé le téléchargement | Attendez Download Complete, vérifiez que la machine virtuelle de stockage secondaire peut atteindre l'URL. |
| La ligne indique no-pass | Le modèle a été enregistré sans passwordenabled=true | Enregistrez-le à nouveau avec ce paramètre. |
| Le branchement à chaud du processeur indique unsupported | Le nom ne se termine pas par vN (N supérieur ou égal à 6) | Renommez le modèle ou définissez vCPU/RAM hot-plug sur Yes dans Edit si l'image possède la règle udev. |
| « Empty template list » après la première connexion | La synchronisation ne s'est pas exécutée | Cliquez sur Sync now (nécessite l'exécution du service d'arrière-plan) ou attendez le cycle de 15 minutes. |