ESXi : Bundle Backup en Powershell

MAJ 15/05/2015 : 6 ans plus tard cette technique est toujours autant d’actualité et c’est donc tout naturellement que nous vous proposons un joli onliner qui viendra poser les bundles dans c:\temp

Get-View -ViewType HostSystem |?{$_.config.product.ProductLineId -eq "embeddedEsx"} |?{$_.Runtime.ConnectionState -eq "connected"}|%{Get-VMHostFirmware -VMHost $_.Name -BackupConfiguration -DestinationPath C:\temp\}

Les plus observateurs aurons remarquez que le backup passe maintenant par la cmdlet Get-VMHostFirmware mais pour restaurer un bundle, c’est toujours Set-VMHostFirmware qu’il faut utiliser. En local sur l’ESXi (aka “ESXi shell”) c’est avec la commande vim-cmd que ça se passe.

Un des gros avantages d’ESXi est qu’il a été à l’origine conçu pour être booté via PXE. Pour cette raison entre autres, la config complète (hors VM bien sûr) d’ESXi est backupée toutes les heures (par la crontab /var/spool/cron/crontabs/root) sous la forme d’un package (state.tgz) qui servira au prochain boot (statefull ou stateless) ou à la cmdlet Set-VMHostFirmware. Le script suivant sauvegarde le configBundle de chaque ESXi, facilement utilisable dans une tache planifiée sur votre vCenter :

$backpath = "c:\bundle_backup\"
$eVMHs = Get-View -ViewType HostSystem |?{$_.config.product.ProductLineId -eq "embeddedEsx"} |?{$_.Runtime.ConnectionState -eq "connected"}
	Foreach	($eVMH in $eVMHs)
	{Set-VMHostFirmware -VMHost $VMH.name -BackupConfiguration -DestinationPath $backpath}

bundle_backup

Sur le screenshot, vous pouvez constater que pour 39 ESXi, la taille totale du backup dépasse à peine 1Mo. En détail, le configBundle d’un host standalone pèse environ 10ko et celui d’un host membre d’un cluster HA pèse environ 100ko (à cause de l’agent AAM). Malgré sa petite taille, ce bundle contient chaque paramètre de la configuration de l’ESXi, y compris le certificat SSL. Ce qui signifie qu’il est possible d’échanger une machine sans impact grâce à ce bundle.

/!\ le bundle est lié à la version de l’ESXi dont il provient et ne peut doit être restauré que sur un ESXi de version identique /!\

Tags: , , ,

6 Responses to “ESXi : Bundle Backup en Powershell”

  1. :hello:

    Il semble s’agit du même résultat que de lancer la commande-script vMA vicfg-cfgbackup, tu confirmes Nitro? :)

  2. Absolument, j’ai oublié de le préciser ;)

  3. [...] 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 [...]

  4. [...] Backing  up multiple hosts! – There is a script to backup multiple ESXi hosts on the VMware communities site here. Also in PowerCLI here! [...]

  5. [...] devez remplacer une carte réseau utilisée par une interface vmkernel de management ou si vous restaurez la configuration d’un serveur sur un autre (panne hardware par ex), vous vous retrouver dans une situation où l’adresse MAC de la carte [...]

  6. NiTRo Says:
    May 2nd, 2015 at 0:52

Leave a Reply