Automatiser l’installation de VMware vSphere 4
De manière générale, lorsque vous désirez rédiger un script, une donnée fondamentale à prendre en compte est la temps passé à développer ce script au regard du temps qu’il vous fera gagner à long terme. Pour une petite entreprise, automatiser l’installation d’un ESX peut donc mal se défendre. Pourtant, grâce à la simplicité de mise en place de cette automatisation, l’administrateur a tout à y gagner, que ce soit pour de nouveaux déploiements ou pour réinstaller un hôte qui aura crashé après une mise à jour. Se pose alors la question de l’automatisation d’une part et de la customisation post-installation d’autre part (création des vSwitchs, Port Group etc…). Si la première est grandement simplifiée grâce au travail préalable de VMware, la deuxième impliquera plus de temps de développement, par exemple au moyen de scripts Powershell.
Tout d’abord, déterminez votre objectif. Vous pouvez soit créer autant de scripts personnalisés que vous le désirez (adresse IP, hostname…), soit n’en créer qu’un seul générique qui permettra un déploiement massif et attribuera automatiquement une configuration DHCP à vos hôtes. Il n’y a pas de meilleur choix, juste une décision opérationnelle à prendre selon que vous déployez 10 ou 100 serveurs…
Par où commencer ?
La meilleure façon d’appréhender l’automatisation de vos serveurs consiste à se familiariser avec le fichier script utilisé par VMware. Pour cela, je vous conseille vivement de réaliser une première installation graphique de vSphere avec vos paramètres habituels. Une fois celle-ci effectuée, vous trouverez votre sésame dans /root/ks.cfg qui correspond au fichier script (format kickstart) généré par l’installeur à partir de vos réponses. Quoi de plus pertinent pour commencer ? Voici un exemple de ce fichier :
[root@esx ~]# cat ks.cfg accepteula keyboard fr-latin1 auth --enablemd5 --enableshadow bootloader --location=partition # Canonical drive names: clearpart --drives=naa.60026b904dcc940 --overwritevmfs # Uncomment to use first detected disk: #clearpart --firstdisk --overwritevmfs # Uncomment the esxlocation line and comment out the clearpart # and physical partitions to do a non-destructive reinstall. #esxlocation --uuid=aee49cbc-2bf1-48f6-b523-82a2f2774315 install cdrom rootpw --iscrypted $1$gRcd2Bsu$94WIweevlwPBlP4DN83Uv. timezone --utc 'Europe/Paris' network --addvmportgroup=true --device=vmnic0 --vlanid=99 --bootproto=static --ip=192.168.100.200 --netmask=255.255.255.0 --gateway=192.168.100.1 --nameserver=192.168.100.3,192.168.100.4 --hostname=esx.domaine.com part '/boot' --fstype=ext3 --size=1100 --ondisk=naa.60026b904dcc940 # Uncomment to use first detected disk: #part '/boot' --fstype=ext3 --size=1100 --onfirstdisk part 'none' --fstype=vmkcore --size=110 --ondisk=naa.60026b904dcc940 # Uncomment to use first detected disk: #part 'none' --fstype=vmkcore --size=110 --onfirstdisk part 'vmfs-esx' --fstype=vmfs3 --size=133184 --grow --ondisk=naa.60026b904dcc940 # Uncomment to use first detected disk: #part 'vmfs-esx' --fstype=vmfs3 --size=133184 --grow --onfirstdisk virtualdisk 'cos' --size=25600 --onvmfs='vmfs-esx' part '/' --fstype=ext3 --size=5120 --maxsize=5120 --onvirtualdisk='cos' part 'swap' --fstype=swap --size=1600 --maxsize=1600 --onvirtualdisk='cos' part '/var' --fstype=ext3 --size=5120 --maxsize=5120 --onvirtualdisk='cos' part '/home' --fstype=ext3 --size=2048 --maxsize=2048 --onvirtualdisk='cos' part '/opt' --fstype=ext3 --size=2048 --maxsize=2048 --onvirtualdisk='cos' part '/tmp' --fstype=ext3 --size=5120 --maxsize=5120 --onvirtualdisk='cos' %post --interpreter=bash # ntp settings esxcfg-firewall --enableService ntpClient chkconfig ntpd on cat > /etc/ntp.conf <<EOF # ---- ntp.conf ---- # Created by Weasel (ESX Installer) # Permit time synchronization with our time source, but do not # permit the source to query or modify the service on this system. restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery server ntp.domaine.com EOF
Le script étant généré à partir d’une installation que vous avez réalisé, c’est avec une grande facilité que vous devriez pouvoir le comprendre. Avec votre fichier ks.cfg assimilé, vous avez une base de travail solide. Reste maintenant à comprendre la philosophie de déploiement de VMware.
Comprendre l’automatisation d’installation chez VMware
La mire d’installation de VMware ESX 4.0 vous permet aussi bien de réaliser une installation standard graphique qu’une installation scriptée complexe.

Voici en détail l’installation à choisir pour ce que vous désirez faire :
| Mode d'installation | Fonction |
|---|---|
| Install ESX in graphical mode | Installe ESX 4 grâce à l'assistant graphique |
| Install ESX in text mode | Installe ESX 4 en mode texte seul (moins convivial mais tout aussi fonctionnel et rapide) |
| ESX Scripted Install using USB ks.cfg | Utilise un fichier ks.cfg que vous aurez au préalable créé et déposé sur une clé USB formatée en FAT |
| ESX Scripted Install to first disk | Utilise le script ks-first-safe.cfg pour installer ESX sur le premier disque tout en préservant les datastores VMFS* |
| ESX Scripted Install to first disk (overwrite VMFS) | - Reformate le premier disque (/dev/sda) par le biais du script ks-first.cfg - Met en place un partitionnement par défaut* |
| Boot from first hard disk | Démarre sur le premier disque dur sans installer ESX |
* le mot de passe utilisé par défaut est : mypassword
Sachez qu’il est également possible d’utiliser l’option ESX Scripted Install using USB ks.cfg comme point de départ (un template de boot en quelque sorte) à un script ks.cfg personnalisé que vous auriez par exemple déposé à la racine de l’ISO du CD d’installation d’ESX 4 (cdrom://) ou d’un partage (ftp://, nfs://…). Pour cela, à la mire d’installation de l’ESX, appuyez sur la touche F2 pour obtenir les options d’installation, puis tapez la commande suivante selon l’option choisie (attention, le clavier est QWERTY à ce stade):
Boot options initrd=initrd.img vmkopts=debugLogToSerial:1 mem=512M ks=cdrom:/ks.cfg quiet
Attention : si vous installez ESX sur un serveur qui possède déjà un volume VMFS partitionné votre installation échouera sans ajouter la ligne suivante (si bien sûr vous ne connaissez pas l’ID du disque à effacer…) :
clearpart --firstdisk --overwritevmfs
Une mise en garde néanmoins : l’option –overwritevmfs peut tout à fait complètement effacer un volume VMFS de production ! Prenez donc pour habitude de ne l’utiliser que dans un LAN de test ou pour détruire un volume VMFS cible identifié. Pour ma part, je préfère déconnecter l’hôte du réseau et installer ESX via clé USB. Mieux vaut se prémunir de tout problème lorsqu’on travaille dans un environnement de production.
Articles sur le même thème :


