L’aventure « ESXi » a démarré pour moi il y a plus d’une dizaine d’années, avec un ESXi 3.5 installé sur une machine de récupération. A l’époque, c’était pour découvrir l’hyperviseur. Puis je suis passé à la 5.1 puis 5.5 que j’ai adopté pour mes besoins persos (test et domotique), toujours avec des machines de récup. J’ai furtivement testé la 6.5 mais devant le nombre de bug à l’époque et divers problèmes, je suis resté en 5.5.
Puis, il y a quelques jours, je découvres un peu par hasard que la 6.5 a laissé place à la 6.7 (puis la 7.0 mais ce n’est pas l’objet de ce billet -> voir à la fin pourquoi) ! Je me décide donc à tenter ma chance avec cette nouvelle version.
Installer ESXi 6.7, c’est vraiment un jeu d’enfant : on récupère l’ISO sur le site officiel (avec licence gratuite), on met tout ça sur clé USB via Rufus et le tour est joué. #mondedesbisounours
Sauf que, parfois, le matériel n’est pas reconnu car l’ISO officiel ne dispose pas de tous les pilotes de tous les matériels qui existent sur terre. Il faut donc personnaliser l’ISO en y ajoutant le driver souhaité. Heureusement, ESXi-Customizer-PS est là pour nous aider.
Dans mon cas, le matériel non reconnu était la carte RAID Adaptec 6805 que j’ai déniché pour une bouché de pain.
Pourquoi cette publication ?
Pour une raison toute simple : au fil des ans, je reviens régulièrement tester les nouvelles versions d’ESXi, ou l’installer sur du nouveaux matériels.
Avec à chaque fois les mêmes questions : comment j’ai fait la dernière fois pour personnaliser l’ISO ? et pour installer/configurer ESXi-Customized-PS ? PowerCLI ? PowerShell ? etc
Bref, ce n’est pas grand chose mais à chaque fois quelques minutes de perdu à retrouver mes notes, plus ou moins bien organisée.
Via cette publication, je me suis dit que j’allais prendre un PC propre (une fresh-install de Windows 7 en VM) et que j’allais refaire de Zéro le processus de personnalisation de l’ISO… et le documenter cette fois-ci !
Installer PowerShell 5
Dans un premier temps, il faut un PC avec PowerShell v5.
Pour connaitre la version actuelle de votre PowerShell, ouvrez le (Démarrer/Tous les programmes/Accessoires/PowerShell) puis lancez la commande :
$PSVersionTable
Pour télécharger la v5, il faut se rendre sur ce site : https://www.microsoft.com/en-us/download/details.aspx?id=54616
Et on choisit la version correspondant à notre OS (dans mon cas, un Win7 64bits) :
Ensuite on installe
Note : si vous n’avez pas le SP1 de Windows 7, cela ne fonctionnera pas.
La mise à jour s’installe…
On a donc maintenant la version 5 de PowerShell :
A noter qu’il faut aussi avoir installé .NET Framework 4.5 minimum.
Installer PowerCLI
On ouvre une fenêtre PowerShell en admin
et on lance la commande :
Install-Module -Name VMware.PowerCLI -Scope AllUsers
Si cela ne fonctionne pas à cause d’un message d’erreur qui « Impossible de télécharger à partir de… » :
Toujours dans PowerShell, on lance la commande :
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Puis on retente l’installation du module :
Il vaut mieux répondre [A] ==> Yes to All, cela évite d’avoir à répondre[Y] plusieurs fois. L’installation dure 1 ou 2 minutes :
Si on veut voir si tout est bien installé :
get-module vmware* -ListAvailable
Préparer ESXi-Customizer-PS
Direction le GitHub du projet et on télécharge le nécessaire via cette URL : https://github.com/VFrontDe/ESXi-Customizer-PS
On dézippe le tout sur le disque dur du PC.
Astuce : tout mettre dans un répertoire de premier niveau avec un chemin d’accès simple.
Perso, j’ai choisi le répertoire E:\ESXi, auquel j’ai rajouté deux sous-répertoires : ISO (pour la génération du fichier ISO d’ESXi) et raid (pour le driver/vib de ma carte raid)
On lance PowerShell et on se place dans le répertoire du script :
Avant de passer à l’étape suivante, vous pouvez faire un peu de lecteur avec la commande :
.\ESXi-Customizer-PS-v2.8.1.ps1 -help
PS : bien évidemment, vous devez personnaliser les commandes à saisir. Perso j’ai mis tous les éléments dans E:\ESXi et j’ai renommé le script PowerShell « ESXi-Customizer-PS-v2.8.1.ps1 ».
Récupérer le bundle offline depuis le dépot d’ESXi 6.7
Pour générer l’ISO d’ESXi, soit on utilise le dépôt « en ligne », c’est à dire que chaque fichier sera téléchargé à chaque fois que vous lancez le script ESXi-Customized-PS, soit vous téléchargez le bundle « hors ligne » qui se présente sous la forme d’un fichier ZIP contenant toutes les sources pour créer un ISO d’ESXi.
Personnellement, j’ai opté pour cette seconde solution pour ne pas avoir à tout re-télécharger à chaque fois que je re-build l’ISO.
Donc pour récupérer le bundle offline d’ESXi 6.7, on saisit :
.\ESXi-Customizer-PS-v2.8.1.ps1 -v67 -ozip
Si on reçoit un message d’avertissement de ce type :
On lance la commande :
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Et on répond [A] Yes to All :
Ce qui normalement doit donner le résultat suivant :
A noter que d’après mes constatations, le script ESXi-Customized-PS dans sa version 2.8.1 permet de télécharger le bundle d’ESXi 7.0 (et antérieur).
La version 2.6.0 d’ESXi-Customized-PS ne permettait d’avoir qu’ESXi 6.7 et antérieur).
C’est d’ailleurs écrit dans le changelog : https://github.com/VFrontDe/ESXi-Customizer-PS/blob/master/docs/CHANGES.md
Le jour de la rédaction de cet article, le bundle téléchargeait portait le nom de : ESXi-6.7.0-20200804001-standard.zip
Récupérer le driver pour la carte RAID Adaptec
Pour ma part, j’ai juste tapé « Adaptec 6805 » dans un moteur de recherche et le premier lien était celui du fabricant : https://storage.microsemi.com/en-us/support/raid/sas_raid/sas-6805/
Le site Internet d’Adaptec propose des drivers pour pleins de systèmes d’exploitations dont les ESXi (driver certifié jusqu’à ESXi6) :
On télécharge le driver en acceptant les termes d’utilisation.
On dézippe deux fois (un TGZ puis un TAR) et on récupère le fichier VIB.
Enfin, on place le fichier VIB dans le répertoire adéquat (« E:\ESXi\raid » dans mon cas).
Générer l’ISO personnalisé
Il suffit de lancer la commande PowerShell suivante :
.\ESXi-Customizer-PS-v2.8.1.ps1 -pkgDir .\raid\ -izip .\ESXi-6.7.0-20200804001-standard.zip -v67 -outDir .\iso\
- L’argument « pkgdir » permet de définir le répertoire où se trouve les drivers supplémentaires à rajouter à l’ISO.
- L’argument « izip » permet de définir le répertoire où se trouve le bundle offline d’ESXi 6.7
- L’argument « -v67 » indique que l’on veut créer un ISO d’ESXi 6.7.
- L’argument « outDir » indique où doit être généré l’ISO.
L’ISO est bien généré :
Installer ESXi 6.7
Sans trop détailler, j’utilise RUFUS pour mettre l’ISO sur clé USB et le rendre bootable :
Puis on branche la clé USB sur l’hyperviseur, on démarre sur la clé (via bios ou démarrage avancé) puis on se laisse guider (à coup de « Entrée » + « F11/Valider »).
Job done !
Et ESXi 7.0 avec une Adaptec 6805 ?
De ce que j’ai pu lire, ce n’est pas du tout possible.
Le VMware Compatibility Guide semble très clair sur ce point : pas de v7.0 possible
https://www.vmware.com/resources/compatibility/detail.php?deviceCategory=io&productid=20854
Même réponse du côté du site d’Adaptec : https://ask.adaptec.com/app/answers/detail/a_id/17481/~/vmware-esxi-7.x-support