Transformer vMA en appliance PXE pour ESXi

La vSphere Management Assistant (aka vMA/VIMA) devient indispensable lorsqu’il s’agit d’administrer ESXi en masse. A ce titre, nous utilisons régulièrement la commande  <esxcfg-cfgbackup> qui permet comme vous le savez/devinez le backup de la config d’un ESXi et la restaurer en cas de besoin (pour un changement de serveur par exemple).

Alors que nous nous intéressions de près à une solution de déploiement stateless PXE d’ESXi, il devenait évident qu’il allait falloir à un moment ou à un autre partager ou extraire les fichiers configBundle de la vMA (ou d’un Windows avec Power CLI) pour que le serveur TFTP puissent les transmettre aux ESXi lors du boot. Mais il y a aussi plus simple : installer les services DHCP et TFTP sur la vMA.

L’appliance de VMware est un RHEL 5 x64, nous avons donc fouillé dans les CD d’install originaux de cette version que nous avions sous la main (attention à la licence…) et en avons extrait dhcp-3.0.5-18.el5.x86_64.rpm et tftp-server-0.42-3.1.x86_64.rpm qui feront parfaitement l’affaire pour notre petite expérience :)

Pour rendre certaines manipulations plus simple, nous avons préalablement déverrouillé le compte root (dans le fichier /etc/passwd). Il faut ensuite installer les packages et configurer les services associés, puis autoriser le tftp dans le firewall. Nous avons également augmenté la taille des partitions pour plus de confort :

  • rpm -i ./dhcp-3.0.5-18.el5.x86_64.rpm
  • rpm -i ./tftp-server-0.42-3.1.x86_64.rpm
  • /sbin/chkconfig –level 345 xinetd on
  • /sbin/chkconfig –level 345 tftp on
  • /sbin/chkconfig –level 345 dhcpd on
  • ajouter -A RH-Firewall-1-INPUT -p udp -m udp –dport 69 -j ACCEPT dans /etc/sysconfig/iptables
  • augmenter la taille des partitions de la vMA

Vous modifiez le dhcpd.conf selon vos besoins, ainsi que les réservations MAC/IP :

vma-pxe-dhcpd

Il faut ensuite configurer la partie tftp tel que décrit par Jim McCann et William Lam.  Nous avons opté pour une arborescence organisée par version d’ESXi (installable & embedded) ainsi qu’un répertoire dédié aux configBundle et un autre pour les agents vpxa (vcenter) et aam (cluster HA) :

vma-pxe-tftp

vma-pxe-vgz

le répertoire pxelinux.cfg est quant à lui dédié aux réservations MAC/ESXi :

vma-pxe-pxelinux

Voici un extrait d’un de nos fichiers de configuration pxelinux :

default menu.c32
menu title PXE Boot VMware ESXi ESX4i-8
timeout 30

label ESXi 4.0.0 b208167
menu label Boot VMware ESXi 4.0.0 b208167
kernel ./mboot.c32
append /eESX4.0b208167/vmkboot.gz — /eESX4.0b208167/vmk.gz — /eESX4.0b208167/sys.vgz — /eESX4.0b208167/cim.vgz — /eESX4.0b208167/oem.tgz — /eESX4.0b208167/license.tgz — /agents/vpxa-208111.vgz — /agents/aam-208111.vgz — /configBundle/configBundle-ESX4i-8.tgz
ipappend 2

label ESXi 4.0.0 b193498
menu label Boot VMware ESXi 4.0.0 b193498
kernel ./mboot.c32
append /eESX4.0b193498/vmkboot.gz — /eESX4.0b193498/vmk.gz — /eESX4.0b193498/sys.vgz — /eESX4.0b193498/cim.vgz — /eESX4.0b193498/oem.tgz — /eESX4.0b193498/license.tgz — /agents/vpxa-208111.vgz — /agents/aam-208111.vgz — /configBundle/configBundle-ESX4i-8.tgz
ipappend 2

Les configBundle sont recueillis par un script éxécuté par la crontab (le fichier esxi.csv peut contenir une liste de noms ou d’IP) :

awk -F’;’ ‘{ print $1 }’ ./esxi.csv | while read name
do
esxcfg-cfgbackup –server $name –username root –password ” -s /tftpboot/configBundle/configBundle-$name.tgz
done

Les agents vpxa et aam sont extraits du répertoire /bootbank d’un ESXi “type”. Ces agents évoluant au fil des version de vCenter, il faut les mettre à jour pour ne pas que le vCenter le fasse à chaque reboot des ESXi :

vpxa-aam

Lorsque tous les composants sont opérationnels, c’est magique :

Tags: , ,

7 Responses to “Transformer vMA en appliance PXE pour ESXi”

  1. securityman Says:
    December 1st, 2009 at 16:26

    nice !

  2. Encore un excellent article, j’adore!

    Il faut le traduire en englishe pour le reste de la communaute… Valdaaaaan!? :) )

  3. Tu te dévoue ? ;)

  4. Si j’ai ton autorisation c’est avec plaisir!

  5. Tout le plaisir serait pour moi :)

  6. [...] } This is the translation of a great article posted in French on Hypervisor.fr. All credits go to [...]

Leave a Reply