Archive pour décembre 2009

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.

,

Laisser un commentaire

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.

, , , , ,

Laisser un commentaire

Collecter des logs ESX depuis le Service Console

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.

Laisser un commentaire

Suivre

Get every new post delivered to your Inbox.