15/11/2024

VMware

Créer des templates de VM avec VMware vCenter Server Appliance

I. Présentation

Aujourd'hui, nous allons voir comment créer des modèles de VM sous VMware afin de créer des VMs de "référence" pour vos déploiements. Celles-ci vous permettent de pouvoir créer des machines virtuelles à la volée, sans passer par l'étape fastidieuse de création de VM classique.

Un modèle de machine virtuelle est une image d'une VM personnalisable afin de répondre à certaines exigences métier. Un template peut être utilisé plusieurs fois à des fins de déploiement en masse d'instances de VMs. Après avoir déployé une VM à partir d'un modèle, elle n'est plus liée à son modèle, et est donc indépendante.

Note : certaines informations non essentielles de ce tutoriel ont été masquées.

II. Modèle VS clone VS OVA/OVF

A. La différence entre un clone de VM et un modèle de VM

Un clone de VM "standard" est une copie exacte d'une VM à un instant T qui n'est pas personnalisable (au niveau de l'OS, et certaines ressources physiques). Si vous devez cloner périodiquement une machine virtuelle en cours d'exécution, les clones résultant de celle-ci seraient différents les uns des autres. Un modèle de machine virtuelle vous aide à éviter ces problèmes, car il ne peut pas être modifié* et ne peut jamais être en cours d'exécution. On évite alors les erreurs de manipulations...

VMware fournit des outils qui simplifient la personnalisation du système d'exploitation invité pour les clones de VM. Un point que nous aborderons dans le troisième chapitre de ce tutoriel.

*Vous ne pouvez pas la mettre sous tension et modifier une machine modèle dès lors qu'elle a été créée, afin que personne ne puisse accidentellement démarrer/modifier la machine virtuelle utilisée comme modèle. Si vous souhaitez modifier un modèle, vous devez convertir un modèle en machine virtuelle, modifier la machine virtuelle, puis convertir la machine virtuelle modifiée en un nouveau modèle. Cette approche offre une plus grande sécurité (et une méthode plus « infaillible ») que les clonages classiques de VM.

B. La différence entre un modèle de VM et un modèle OVA/OVF

Les modèles OVA et OVF sont utilisés pour distribuer des logiciels préconfigurés en tant qu'appliances virtuelles. Ils peuvent contenir plusieurs machines virtuelles, ce qui est utile dans les cas où une application se compose de plusieurs instances de VM qui doivent fonctionner indépendamment.

Pour rappel :

  • .OVF est un format de fichier qui contient des métadonnées, des disques virtuels et des éléments de fichier décrivant les machines virtuelles, ainsi que des informations supplémentaires importantes pour le déploiement et le fonctionnement de l'application.
  • .OVA est un package qui englobe les fichiers cités précédemment dans une archive de fichiers unique (plus pratique selon moi).

Les modèles de VM ne sont pas compressés. Ils sont accessibles uniquement à partir d'emplacements disponibles pour vCenter (datastore, etc.) et ne sont pas destinés à être partagés avec d'autres organisations.

III. Environnement de mise en place

Plantons le décor, voici ce que nous allons utiliser :

  • Un VCSA (VMware vCenter Server Appliance), avec un ou plusieurs hôtes ESXi connectés
  • Une machine virtuelle (Windows) fonctionnelle disposant des VMware tools installées. Dans mon cas, je vais utiliser une machine Windows 10 21H1 pour réaliser le didacticiel.

Option : personnaliser votre machine virtuelle en installant un ensemble de logiciels pour vos besoins,  les besoins d'une entité particulière, etc. Je vous recommande d'utiliser le logiciel Ninite afin de faire une seule installation groupée des logiciels les plus connus et les plus utiles, que vous pourriez avoir besoin. Par exemple : WinRar, Firefox, Chrome, Visual Studio Code, etc.

Aperçu de la VM qui doit devenir un modèle

IV. Création du modèle

Depuis une machine virtuelle, fraichement installée, cliquez sur : action, clone, clonez vers un modèle.

Choisissez un nom pour cette future VM de référence. Il doit être différent du nom de la machine originale (ici : Win-10-Pro-21H1-Desktop). Le nom pour cette machine de référence sera dans mon cas Windows-10-Pro-21H1-Desktop-Master.

VMware - Assistant "Cloner la machine virtuelle vers un modèle"

Il vous est demandé par la suite de choisir la ressource de calcul pour héberger votre futur VM template. Choisissez par défaut votre cluster d'hôtes ESXi, ou un hôte ESXi en particulier.

Puis, sélectionnez le datastore où vous souhaitez stocker le modèle de machine virtuelle.

Ensuite, un récapitulatif des actions effectuées s'affiche à l'écran. Dès que vous cliquez sur "Finish", le template va se créer. Patientez pendant la création.

V. Création d'une spécification de personnalisation d'invité VM

La personnalisation du système d'exploitation invité est une fonctionnalité de vSphere qui permet aux utilisateurs de modifier les paramètres du système d'exploitation invité Linux ou Windows d'une Template de VM. Pour rappel l'approche traditionnelle était de :

  • Démarrer manuellement une machine virtuelle,
  • Se connecter au système d'exploitation invité
  • Modifier la configuration dans différentes parties du système d'exploitation via une interface graphique ou l'invite de commande,
  • etc.

Cette méthode est lourde et fastidieuse. Avec la personnalisation du système d'exploitation invité de VMware, vous pouvez créer un fichier de personnalisation et utiliser celui-ci pour personnaliser chaque instance de VM générée à partir du modèle. Vous pouvez facilement modifier les paramètres du réseau, le nom d'hôte, le nom d'utilisateur, le mot de passe, le fuseau horaire, les paramètres de licence, le SID (identifiant de sécurité) et le domaine/workgroup.

Remarque : les paramètres de personnalisation pour Linux et Windows sont différents. La procédure aussi. Les problèmes de compatibilité sont malheureusement nombreux en fonction des distributions. Cette fonctionnalité sera plus utile et exploitable pour un environnement virtuel Windows. Je ne vais donc pas la développer ici. Pour plus d'informations, reportez-vous à la documentation officielle de VMware.

Pour créer votre "procédure d'instanciation de template", rendez-vous dans > Menu > Stratégies et profils 

Puis, créez une nouvelle "spécification de personnalisation d'une VM" (sacré charabia ^^). Renseignez les informations suivantes :

  • La famille de l'OS concernée (Windows dans mon cas)
  • Si vous souhaitez utiliser l'utilitaire SYSPREP. Personnellement, je n’y vois aucun intérêt sachant que VMware propose de générer automatiquement un nouveau SID et cela nous évite une tâche fastidieuse.

Définissez par la suite le nom du propriétaire. Par défaut, ici je vais mettre User. Le nom du compte que j'ai crée lors de l'installation de Windows 10.

Puis, nous pouvons personnaliser le hostname (nom NETBIOS) de l'hôte Windows qui sera généré. Dans mon cas, je vais préfixer le nom d'hôte de chaque machine avec "PC-itco-" suivi d'un numéro d'identification random fourni par VMware, mais vous pouvez choisir de préfixer le nom de la machine, lors du déploiement de la VM, ou via une extension X via VCSA.

VMWare vous laisse le choix d'activer ou non Windows 10 depuis son formulaire en précisant une clé d'activation. 🙂

Vous devez ensuite définir le mot de passe du compte administrateur du template.

Puis, sélectionnez ensuite le bon fuseau horaire en fonction de votre géolocalisation.

Si vous souhaitez injecter un script PowerShell/batch, cette section est faite pour vous :). Dans mon cas, je ne vais pas l'utiliser.

Choisissez ensuite vos paramètres réseau. Dans mon cas, je vais utiliser l'option par défaut DHCP (IP+DNS), mais la deuxième option vous permet d'entrer manuellement les paramètres IP/DNS lors du déploiement d'une nouvelle VM.

La 9e étape nous octroie la possibilité de joindre directement la nouvelle machine déployée à un domaine Active Directory. Dans le cadre du tutoriel, nous allons nous en passer. ^^

Enfin, un récapitulatif vous est présenté. Il suffit de cliquer sur "Finish".

Le profil sera stocké, dans le menu : Menu > Stratégies et profils. À tout moment vous pouvez l'éditer, sans en créer un nouveau.

VI. Déploiement d'une machine virtuelle à partir de notre modèle

Afin de tester notre template, créez une machine virtuelle, cochez l'option "Déployer depuis un modèle", puis cliquez sur "Next".

Je vais donc choisir de déployer une VM Windows 10, à l'aide du template que je viens de réaliser.

Je lui assigne le nom suivant : Win10-21H1-Test. Remarque : le nom de la machine virtuelle, ce n'est pas son hostname au sein de l'OS.

Par la suite, je choisis d'utiliser mon cluster d'ESXi, pour gérer la partie gestion des ressources de calcul.

Je sélectionne un emplacement pour le stockage de cette future VM.

Arrive une étape importante, où nous pouvons choisir de cocher les options suivantes :

  • Personnaliser l'OS de la future VM (via le fichier de personnalisation créé plus tôt)
  • Personnaliser le matériel de cette VM (CPU, RAM, stockage (agrandir le disque dur, choisir le type de provisionnement : thin/thick), etc.)
  • La mettre sous tension dès lors que celle-ci sera déployée.

Évidemment, je vais sélectionner mon profil personnalisé.

Ensuite, si vous le souhaitez, vous pouvez ajuster les ressources physiques. Ce qui est l'occasion d'agrandir la taille du disque dur virtuel, par exemple.

Enfin, VCSA nous présente un récapitulatif des informations que nous lui avons fournies. Après quoi il déploiera la machine virtuelle.

Le déploiement de celle-ci prend environ une bonne minute. Et voilà, notre machine Win10-21H1-Test, est déployée et opérationnelle !

Nous pouvons constater que le nom d'hôte de la machine déployée a bien été modifié automatiquement lors du déploiement de celle-ci, ce qui confirme que la customisation de l'OS a bien été réalisée par VCSA.

VII. Conclusion

J'espère que l'article vous aura plu ! Avant de vous laisser, voici deux rappels pour conclure :

- Un modèle de machine virtuelle est une image spécifique d'une VM qui peut être utilisée pour créer des instances de VM lors de déploiements en masse. Les templates ne peuvent pas être modifiés et activés comme les machines virtuelles ordinaires, ce qui améliore la sécurité.

- La spécification de personnalisation de l'OS du template vous aide à personnaliser les paramètres du système d'exploitation tels que la configuration réseau, le nom de l'ordinateur, le fuseau horaire, injecter un script Batch/Powershell, etc. Cela rend vos déploiements de VM plus rapide et plus pratique. Vous bénéficiez d'avantages importants tel que l'automatisation, la réduction du nombre d'erreurs, et la standardisation de vos machines.

author avatar
Geoffrey Sauvageot-Berland Ingénieur Cybersécurité
Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

1 commentaire sur “Créer des templates de VM avec VMware vCenter Server Appliance

  • Merci
    Sinon pour cela « nouveau SID et cela nous évite une tâche fastidieuse. »
    Que le SID soit changé ou pas on s’en fiche tant que tu clone pas une machine déjà sur le domaine donc SID en doublons, c’est la personne qui avait créé le logiciel newsid qui l’avait indiqué

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.