<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hypervisor.fr &#187; VMware Update Manager</title>
	<atom:link href="http://www.hypervisor.fr/?feed=rss2&#038;tag=vmware-update-manager" rel="self" type="application/rss+xml" />
	<link>http://www.hypervisor.fr</link>
	<description>French Bare-Metal weblog</description>
	<lastBuildDate>Wed, 26 Jun 2024 22:42:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ghetto VUM</title>
		<link>http://www.hypervisor.fr/?p=5084</link>
		<comments>http://www.hypervisor.fr/?p=5084#comments</comments>
		<pubDate>Thu, 15 May 2014 07:22:26 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[esxcli]]></category>
		<category><![CDATA[Image Builder]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[VMware Update Manager]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=5084</guid>
		<description><![CDATA[Pour une raison aussi néfaste que mystérieuse et que même notre cher confrère vmdude n&#8217;a pu expliquer, nous avons &#8220;perdu&#8221; un VUM (VMware Update Manager). Plus rien, nada, que dalle, même pas de backup. Evidemment, nous ne nous en sommes rendu compte que quelques jours avant une grosse campagne de patch. Y voyant là un [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Pour une raison aussi néfaste que mystérieuse et que même notre cher confrère <a href="https://twitter.com/vmdude_fr" target="_blank">vmdude</a> n&#8217;a pu expliquer, nous avons &#8220;perdu&#8221; un VUM (VMware Update Manager). Plus rien, nada, que dalle, même pas de backup. Evidemment, nous ne nous en sommes rendu compte que quelques jours avant une grosse campagne de patch. Y voyant là un signe divin, nous avons pris la décision de ne pas réinstaller le composant et <strong>d&#8217;essayer de patcher cet environnement, sans VUM mais de façon totalement automatisé</strong> (~90 ESXi quand même). Et figurez vous que ça s&#8217;est très bien passé !</p>
<p style="text-align: justify;">La recette est assez simple : <a href="https://blogs.vmware.com/vsphere/2012/04/using-the-vsphere-esxi-image-builder-cli.html" target="_blank"><strong>Image Builder</strong></a> pour générer l&#8217;Offline Bundle + <a href="https://www.vmware.com/support/developer/PowerCLI/PowerCLI55/html/Get-EsxCli.html" target="_blank"><strong>Get-EsxCli</strong></a> pour l&#8217;update + <strong>Reboot</strong>. Du PowerCLI de bout en bout donc on est bon.</p>
<p><img class="aligncenter" src="http://files.hypervisor.fr/img/GhettoVUM/ImageBuilderArchitecture.png" alt="" width="489" height="286" /></p>
<p style="text-align: justify;">Dans notre cas, il fallait mettre à jour des serveurs HP et DELL de sorte que le résultat soit le même qu&#8217;avec la <em><a href="http://h18004.www1.hp.com/products/servers/software/vmware/esxi-image.html" target="_blank">customized ESXi image</a></em> fourni par les éditeurs. Malheureusement il est impossible d&#8217;utiliser une iso pour générer un Offline Bundle (indispensable à esxcli) et si vous vous demandez comment VUM y parvient, allez fouiller dans le répertoire /UPGRADE d&#8217;une iso d&#8217;ESXi et vous comprendrez&#8230; Pas le choix, il a fallut se taper les Bundle à la main !</p>
<p style="text-align: justify;">La toute première étape c&#8217;est évidement le choix de la version d&#8217;ESXi à atteindre (<a href="http://kb.vmware.com/kb/2055559" target="_blank">ESXi 5.0 Complete Update 3</a>) et de faire un clone de l&#8217;Image Profile afin de pouvoir le customizer en y ajoutant des packages :</p>
<pre class="brush: powershell; title: ; notranslate">Add-EsxSoftwareDepot https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml</pre>
<pre class="brush: powershell; title: ; notranslate">New-EsxImageProfile -CloneProfile ESXi-5.0.0-20131002001-standard -Name &quot;VMware-ESXi-5.0.0-Update3-1311175-HP-5.44.21-Feb2014&quot; -Vendor &quot;Hypervisor.fr&quot;</pre>
<p>Si vous voulez voir la liste des build disponibles, l&#8217;idéal c&#8217;est un petit GridView :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/GhettoVUM/gVUM_image_view.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/GhettoVUM/gVUM_image_view.png" alt="" width="467" height="363" /></a></p>
<p style="text-align: justify;">Au passage, on peut apercevoir le process Image Factory Server (if-server.exe) qui fait office de moulinette :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/GhettoVUM/gVUM_if-server.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/GhettoVUM/gVUM_if-server.png" alt="" width="358" height="450" /></a></p>
<p style="text-align: justify;">HP propose depuis longtemps un <a href="http://vibsdepot.hp.com/" target="_blank">vibsdepot (aka HP Online Depot)</a> qui facilite grandement la tâche. Vous n&#8217;avez qu&#8217;à choisir le répertoire qui correspond à la date de l&#8217;iso (Feb2014 dans notre cas) et ajouter le dépôt (index.xml et index-drv.xml) à votre liste :</p>
<pre class="brush: powershell; title: ; notranslate">Add-EsxSoftwareDepot http://vibsdepot.hp.com/hpq/feb2014/index.xml, http://vibsdepot.hp.com/hpq/feb2014/index-drv.xml</pre>
<p style="text-align: justify;">Il faut ensuite ajouter les packages (un minimum filtrés pour éviter les insultes toutes rouge de powershell) au profil custom et l&#8217;exporter au format Bundle (.zip) :</p>
<pre class="brush: powershell; title: ; notranslate">Get-EsxSoftwarePackage|?{$_.SourceUrls -match &quot;vibsdepot.hp.com/hpq/feb2014&quot; -and !($_.Depends -match 'vmkapi_2_[1-9]')}|Add-EsxSoftwarePackage -ImageProfile &quot;VMware-ESXi-5.0.0-Update3-1311175-HP-5.44.21-Feb2014&quot;</pre>
<pre class="brush: powershell; title: ; notranslate">Export-EsxImageProfile -ImageProfile &quot;VMware-ESXi-5.0.0-Update3-1311175-HP-5.44.21-Feb2014&quot; -ExportToBundle -FilePath &quot;C:\Temp\VMware-ESXi-5.0.0-Update3-1311175-HP-5.44.21-Feb2014.zip&quot;</pre>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/GhettoVUM/gVUM_HP_bundle.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/GhettoVUM/gVUM_HP_bundle.png" alt="" width="478" height="418" /></a></p>
<p>Si vous voulez consulter la liste des package avant de les ajouter, encore un petit GridView :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/GhettoVUM/gVUM_pkg_view.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/GhettoVUM/gVUM_pkg_view.png" alt="" width="505" height="402" /></a></p>
<p style="text-align: justify;">Du coté de DELL c&#8217;est radicalement différent puisque <a href="http://vmwaredepot.dell.com/DEL/DEL-index.xml" target="_blank">leur dépôt ne contient que les vib &#8220;iDRAC Service Module&#8221; et &#8220;OpenManage&#8221;</a>. Heureusement, en fouillant un peu nous avons pu trouver <a href="ftp://ftp.dell.com/Manuals/all-products/esuprt_software/esuprt_virt_solutions/vmware-esxi-5_Reference%20Guide6_en-us.pdf" target="_blank">un pdf qui recense toutes les modifications apportées à l&#8217;iso originale de VMware</a> pour parvenir à la version customizé made in DELL. S&#8217;en suit un travail de fourmi pour retrouver tous les offline bundle associés, les télécharger et les ajouter au profil custom.</p>
<p style="text-align: justify;">Une fois que le bundle est prêt, un petit coup de Get-EsxCli pour le distribuer <a href="http://www.hypervisor.fr/?p=5012" target="_blank">sur le même principe qu&#8217;ESXCLI</a> mais a l’échelle d&#8217;un cluster :</p>
<pre class="brush: powershell; title: ; notranslate">Get-Cluster toto|Get-VMHost|%{($_|Get-EsxCli).software.profile.update($false, &quot;/vmfs/volumes/datastore/HP/VMware-ESXi-5.0.0-Update3-1311175-HP-5.44.21-Feb2014.zip&quot;, $true, $null, $true, $null, $null, &quot;VMware-ESXi-5.0.0-Update3-1311175-HP-5.44.21-Feb2014&quot;, $null)}</pre>
<p style="text-align: justify;">Il vous faudra évidement personnaliser <strong>le nom du cluster</strong>, <strong>le chemin du bundle</strong> ainsi que <strong>le nom du profil</strong> mais surtout changer la variable de dry run <strong>$true</strong> (celui juste après le path dans le oneliner) en $false pour effectuer la mise a jour. Ce oneliner ne fait que vérifier que la mise a jour est possible et vous permet de contrôler le process :</p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/GhettoVUM/gVUM_get-esxcli_dryrun.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/GhettoVUM/gVUM_get-esxcli_dryrun.png" alt="" width="518" height="205" /></a></p>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/GhettoVUM/gVUM_get-esxcli_run.png"><img class="aligncenter" src="http://files.hypervisor.fr/img/GhettoVUM/gVUM_get-esxcli_run.png" alt="" width="518" height="205" /></a></p>
<p style="text-align: justify;">Pour plus d&#8217;informations, nous vous recommandons vivement de consulter <a href="http://www.v-front.de/2012/05/imagebuilder-deep-dive-part-3-power-of.html" target="_blank">la série de post &#8220;ImageBuilder Deep Dive&#8221; d&#8217;Andreas Peetz</a>.</p>
<p style="text-align: justify;">La touche finale c&#8217;est un oneliner qui reboot le cluster en séquentiel (DRS auto obligatoire et les ESX doivent avoir au moins 1 jour d&#8217;uptime) :</p>
<pre class="brush: powershell; title: ; notranslate">Get-Cluster toto|Get-VMHost|Get-View|?{$_.Runtime.BootTime -lt (Get-Date).adddays(-1) -and $_.Runtime.ConnectionState -eq &quot;connected&quot; -and !$_.Runtime.InMaintenanceMode}|%{$_.EnterMaintenanceMode(&quot;60&quot;,0);while (!(get-view -viewtype hostsystem -filter @{&quot;name&quot;=$_.name}).Runtime.InMaintenanceMode){sleep 15};$_.RebootHost(0);while ((get-view -viewtype hostsystem -filter @{&quot;name&quot;=$_.name}).Runtime.ConnectionState -eq &quot;connected&quot;){sleep 15};while ((get-view -viewtype hostsystem -filter @{&quot;name&quot;=$_.name}).Runtime.ConnectionState -eq &quot;notResponding&quot;){sleep 30};$_.ExitMaintenanceMode(&quot;60&quot;);while ((get-view -viewtype hostsystem -filter @{&quot;name&quot;=$_.name}).Runtime.InMaintenanceMode){sleep 15}}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=5084</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
