<?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; HostPatch</title>
	<atom:link href="http://www.hypervisor.fr/?feed=rss2&#038;tag=hostpatch" 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>[SDK] Les petits secrets du HostPatchManager</title>
		<link>http://www.hypervisor.fr/?p=3972</link>
		<comments>http://www.hypervisor.fr/?p=3972#comments</comments>
		<pubDate>Tue, 24 Jul 2012 23:39:58 +0000</pubDate>
		<dc:creator>NiTRo</dc:creator>
				<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Tips & Tricks]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[HostPatch]]></category>
		<category><![CDATA[PowerCLI]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[vib]]></category>
		<category><![CDATA[VUM]]></category>

		<guid isPermaLink="false">http://www.hypervisor.fr/?p=3972</guid>
		<description><![CDATA[Pour un projet particulier, il nous a fallu trouver une méthode industrialisable pour patcher des ESXi 4.0 U1 &#62; U4 à chaud et sans maintenance mode. Evidemment la mise à jour nécessite un reboot pour être effective mais cela offre la possibilité (contrairement à VUM) de séparer totalement la partie patch de la partie &#8220;maintenance mode&#8221;/reboot afin de partager les taches entre 2 équipes par [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Pour un projet particulier, il nous a fallu trouver une méthode industrialisable pour patcher des ESXi 4.0 U1 &gt; U4 <strong>à chaud et sans maintenance mode</strong>. Evidemment la mise à jour nécessite un reboot pour être effective mais cela offre la possibilité (contrairement à VUM) de séparer totalement la partie patch de la partie &#8220;maintenance mode&#8221;/reboot afin de partager les taches entre 2 équipes par exemple (et accessoirement d’être plus rapide que VUM).</p>
<p style="text-align: justify;">Nous savions que c&#8217;était techniquement envisageable compte tenu du fait qu&#8217;un <a href="http://www.hypervisor.fr/?p=1049" target="_blank">patch pour ESXi se résume à la copie d&#8217;une nouvelle build dans <span style="text-decoration: line-through;">la &#8220;bootbank&#8221; après avoir copier la build courante dans la &#8220;altbootbank</span>&#8220;</a> <a href="http://youtu.be/rTYULTkudSI?t=9m51s" target="_blank">la &#8220;bootbank&#8221; inactive</a>. Compte tenu du fait qu&#8217;ESXi est un OS stateless, le fait d’écraser la &#8220;bootbank&#8221; <span style="text-decoration: line-through;">et la &#8220;altbootbank&#8221;</span> pendant le fonctionnement ne pose pas de problème. Malgré tout, il nous a fallu chercher un peu pour trouver le bon paramètre à passer à &#8220;esxupdate&#8221; pour forcer la mise à jour (qui nécessite le &#8220;maintenance mode&#8221; par défaut) avec des vm en fonctionnement.</p>
<p style="text-align: justify;">Voici un petit oneliner qui vous permettra de reproduire cet exploit (oubliez le support vmware naturellement) :</p>
<pre class="brush: powershell; title: ; notranslate">(get-view (get-vmhost vsp41esx01*|get-view).configmanager.PatchManager).InstallHostPatchV2($null, &quot;http://www.hypervisor.fr/img/ESXi410-201206001.zip&quot;, $null, ((new-object Vmware.Vim.HostPatchManagerPatchManagerOperationSpec -Property @{cmdOption = &quot;--maintenancemode&quot;})))</pre>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/HostPatch/InstallHostPatch.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/HostPatch/InstallHostPatch.png" alt="" width="521" height="645" /></a></p>
<p style="text-align: justify;"><a href="http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/vim.host.PatchManager.html#InstallV2" target="_blank">Comme le détail le SDK</a>, il est possible de choisir entre 3 sources de patch : metaUrls, bundleUrls ou vibUrls, tout dépendra du format du patch. Concernant le &#8220;maintenance mode&#8221;, toute la magie réside dans le paramètre &#8221;<strong>&#8211;maintenancemode</strong>&#8221; qui fait parti des &#8220;hidden options&#8221; d&#8217;esxupdate (malheureusement pas toutes commentées) :</p>
<blockquote><p>&#8211;HA<br />
&#8211;vib-view<br />
&#8211;maintenancemode<br />
&#8211;force<br />
&#8211;test <em>&#8216;Test update transaction only&#8211;do not change sytem.&#8217;</em><br />
&#8211;all<em> &#8216;Display all bulletins.  Default is to display only the applicable updates.&#8217;</em><br />
&#8211;long <em>&#8216;Produce more detailed response in query or info output.&#8217;</em><br />
&#8211;noobsoletes <em>&#8216;Ignore obsoletions during update.  (Enables downgrading to older bundles.)&#8217;</em><br />
&#8211;reinstall <em>&#8216;Re-install a bundle that is already installed.&#8217;</em><br />
&#8211;nodeps<br />
&#8211;nosigcheck<br />
&#8211;nocache<br />
&#8211;olderversion<br />
&#8211;cachesize<br />
&#8211;cleancache<br />
&#8211;compliant</p></blockquote>
<p>A l&#8217;opposé, il est aussi possible de <strong>désinstaller un patch </strong>(à chaud toujours), ce qui est malheureusement impossible à faire avec VUM :</p>
<pre class="brush: powershell; title: ; notranslate">(get-view (get-vmhost vsp41esx02*|get-view).configmanager.PatchManager).UninstallHostPatch(&quot;ESXi410-201101223-UG&quot;,((new-object Vmware.Vim.HostPatchManagerPatchManagerOperationSpec -Property @{cmdOption = &quot;--maintenancemode&quot;})))</pre>
<p style="text-align: center;"><a href="http://files.hypervisor.fr/img/HostPatch/UninstallHostPatch.png" target="_blank"><img class="aligncenter" src="http://files.hypervisor.fr/img/HostPatch/UninstallHostPatch.png" alt="" width="521" height="534" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hypervisor.fr/?feed=rss2&amp;p=3972</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
