Déployer Automatiquent des VMs en PowerShell (Partie 1)

Déployer Automatiquent des VMs en PowerShell (Partie 1)

Selon la taille de votre architecture VMware et le nombre de VMs que vous déployez, il peut être intéressant de prendre le temps nécessaire pour automatiser le déploiement de vos Vms.

Bien que nous soyons équipé de vRealize Orchestrator,  j’ai opté pour un script en PowerShell,  car :

  • Cela ne nécessite aucune licence supplémentaire, cela peut donc être facilement implémenter.
  • Sur le net on trouve très peu  de documentations sur la création des workflows Orchestrator

L’exemple de déploiement de vm qui suit, s’appuie sur : 

  • Des Templates de Vms Windows et Linux
  • Les fichiers de customisation système  pour Linux et Microsoft  (customisation du hostname, nom de domaine, dns, …)
  • Un fichier json contenant les caractéristiques de la vm

Les fichiers de customisation mis en place par les équipes systèmes se trouvent (sur client HTML5) dans :

Menu  -> Shortcuts -> Monitoring -> VM Customizations  Specifications

Ici, nous en avons deux, l’un pour les vms Linux et le second pour les vm Windows

Dans notre  script de déploiement, nous créons un objet « myVM » de type « PSCustomObject » à partir du fichier json, cet objet sert à stocker toutes les données de la vm que l’on va déployer.

Si vous souhaitez avoir plus d’information sur les  PSCustomObject, vous pouvez lire l’article de Kevin Marquette ici

1 – Préparation du fichier de Customisation de l’OS

Pour le fichier de customisation temporaire, on crée un nom de fichier horodaté, au cas ou l’on lancerait en parallèle plusieurs déploiements.

Puis, à partir du fichier de customisation en place (Linux ou Windows), on crée un nouveau fichier temporaire pour la customisation de la VM, avec les informations réseau comme l’IP , le masque de sous réseau, les serveurs DNS (si nécessaire)  et les serveurs WINS (si nécessaire sur Windows, mais pas chez nous…)

Génération du  fichier temporaire de customisation , dans le cas du déploiement d’une Vm Linux (les adresses DNS sont présents dans le fichier de customisation servant de modèle.)

Dans le cas du déploiement d’une VM Windows, nous ajoutons les serveurs DNS

Il faudra penser à supprimer ce fichier de customisation une fois la vm générée.

2 – Création de la nouvelle VM

Pour créer la Vm , la commande est « NEW-VM ». Mais à cette commande on va ajouter un certain nombre d’arguments et on va spécifier le fichier de customisation que l’on vient juste de créer.

On retrouve donc ici les arguments :

  • name :  on indique  le nom  de la VM au sens VMWare, c’est-à-dire que l’on retrouve dans l’arborescence du vcenter.
  • template : on indique le template qui doit être utilisé pour le déploiement de la VM.
  • RessourcePool : on donne le nom du cluster d’ESXI sur lequel la VM doit être déployée.
  • Datastore : on indique le nom du Datastore ou du Cluster de Datastore de destination
  • OSCustomizationSpec : On indique le fichier de customisation qui doit être utilisé pour la customisation de l’OS
  • Location : le nom du folder de destination de la vue logique « Vms and Templates »

La documentation de la cmdlet « NEW-VM » est disponible ici avec toutes les options.

La cmdlet NEW-VM effectue une opération synchrone, elle nous rend donc la main une fois l’opération de création terminée.

3 – Customisation de l’OS de la VM

Une fois la VM créée, il vous suffit de la démarré pour que  la customisation de l’OS  se lance.

Et vous n’avez plus qu’à attendre  la fin de la customisation.

Pour surveiller le bon démarrage et la fin de la customisation, il faut effectuer une recherche dans les Events Logs VMWARE.

Customization-VM

Pour le suivi des étapes de la customisation de l’OS,   j’utilise donc la fonction ci-dessous :

Une fois la Customisation finie, on supprime le fichier de customisation temporaire ….

Mais attention, à la fin de la customisation de l’OS, il y a un reboot de la machine et donc avant d’enchaîner les étapes suivantes et de passer à la customisation du hardware, il faut vérifier que la vm est bien redémarré. Pour cela, on vérifie le statut des tools de la VM.

Une fois les Tools de la VM redémarré, on peut maintenant continuer et passer à la customisation du Hardware, que nous allons détailler dans un second billet.

1 Comment

Post a Comment

Comment
Name
Email
Website