Archive pour décembre 2009
Automatiser l’installation de VMware vSphere 4
Publié par Aurélien dans Virtualisation le 23 décembre 2009
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 :
[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.
Déployer rapidement un serveur LAMP fonctionnel sous Debian 5 Lenny
Installer Apache2
Installer un serveur web Apache fonctionnel ne nécessite qu’un paquet (apache2). Néanmoins, on peut optimiser l’installation grâce à l’ajout de paquets supplémentaires. Cela a pour but de maximiser la compatibilité et les fonctionnalités de votre serveur. Prochainement, je vous expliquerai d’ailleurs comment personnaliser et maintenir votre serveur (Virtual Hosts, mods, etc…).
Installez les paquets suivants pour déployer Apache :
apt-get install apache2 apache2.2-common apache2-mpm-prefork apache2-utils ssl-cert
Description des paquets installés :
[table id=14 /]
Je vous invite à régulièrement suivre le tag Apache ou le flux RSS du site pour être tenu au courant des derniers articles sur ce sujet.
Installer PHP5
Comme pour Apache, PHP s’installe grâce à un seul paquet. On en ajoute d’autres pour le rendre optimisé et compatible avec la plupart des développements.
Installez les paquets suivants pour déployer PHP :
apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-gd php5-imagick php5-memcache php5-mysql php5-xmlrpc php5-xsl
Description des paquets installés :
[table id=15 /]
Je vous invite à régulièrement suivre le tag PHP ou le flux RSS du site pour être tenu au courant des derniers articles sur ce sujet.
Installer MySQL
L’installation de MySQL est de loin la plus aisée. Néanmoins, je vous expliquerai prochainement comment personnaliser et maintenir votre serveur (accès distant, optimisation, benchmarks etc…).
Installez les paquets suivants pour déployer MySQL :
apt-get install mysql-server mysql-client libmysqlclient15-dev
Description des paquets installés :
[table id=16/]
Je vous invite à régulièrement suivre le tag MySQL ou le flux RSS du site pour être tenu au courant des derniers articles sur ce sujet.
Collecter des logs ESX depuis le Service Console
Publié par Aurélien dans Virtualisation le 16 décembre 2009
En cas de problème avec vos hôtes ESX, le support VMware peut vous demander de générer les logs de votre hôte défaillant. Depuis le Service Console, lancez alors la commande /usr/bin/vm-support. Ici, l’opération est réalisée sous vSphere et dure quelques minutes.
[root@esx ~]# vm-support VMware ESX Support Script 1.30 Preparing files: Waiting up to 300 seconds for background commands to complete: Waiting for background commands: Creating tar archive ... File: /root/esx-2009-12-10--17.11.893.tgz Please attach this file when submitting an incident report. To file a support incident, go to http://www.vmware.com/support/sr/sr_login.jsp To see the files collected, run: tar -tzf /root/esx-2009-12-10--17.11.893.tgz Done.
Copiez-collez simplement la dernière ligne de l’output (tar -tzf <path>) pour décompresser les archives générées par le script. Lorsque vous naviguez dans /root, vous trouvez alors les fichiers qui vous intéressent dans le dossier old_cores.
[root@esx ~]# ll
total 4092
-rw-r--r-- 1 root root 4174789 Dec 10 17:14 esx-2009-12-10--17.11.893.tgz
drwxr-xr-x 2 root root 4096 Dec 10 17:13 old_cores
Reste à déterminer ceux qui vous intéressent et à les envoyer sur le FTP de VMware. Dans l’exemple que l’on a pris, il n’en existe qu’un seul donc le choix n’est pas trop compliqué…
[root@esx old_cores]# ll total 10340 -rw-r--r-- 1 root root 10570543 Oct 19 15:15 vmkernel-zdump-101909.15.15.1
Pour la récupération du fichier, passez soit par SFTP, soit par le volume vmfs d’un disque local dans lequel vous pourrez déplacer votre fichier grâce à la commande mv
[root@esx root]# mv vmkernel-zdump-101909.15.15.1 /vmfs/volumes/vmfs-esx/
Ne restera plus alors qu’à naviguer dans le datastore de votre hôte depuis le vCenter et à télécharger le fichier.