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.

mire_install_esx4

Voici en détail l’installation à choisir pour ce que vous désirez faire :

[table id=17 /]

* 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.

,

  1. Poster un commentaire

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :