Stisknutím tlačítka "Enter" přeskočíte na obsah

Update productLocker MOB/PowerCLI

Možná jste se již setkali s tím, že byste potřebovali konsolidovat umístění VMware Tools ISO pro všechny hosty v rámci clusteru/datacentra do jednoho jediného umístění. Typicky se pro toto používá nějaký sdílený datastore, a je jedno, jeslti bude na VMFS/NFS nebo pro cluster to může být i vSAN.

Abyste toto provedli, tak k tomu dříve bylo za potřebí upravit advanced parametr na každém hostu zvlášť. Drobná nevýhoda byla, že se toto nastavení projevilo až po restartu ESX hosta.

UserVars.ProductLockerLocation

Od verze 6.7U1 existuje možnost zavolat změnu přes API a tím pádem i přes PowerCLI.

Má to jednu velkou výhodu. Změna se projeví hned a není potřeba následně hosta restartovat.

Na tuto možnost se tedy nyní podíváme.

vCenter server má k dispozici MOB (Managed Object Browser). Není to ale jen prohlížeč, nýbrž i rozhraní, přes které můžete spouštět API příkazy i k editaci parametrů. A to vše z pohodlí webového prohlížeče.

K tomuto se dostanete, pokud do adresy v prohlížeči přidáte “/mob

https://<vcenter_fqdn>/mob

Tento MOB se dá povolit i na jednotlivých hostech, ale s omezeními pro standalone hosty viz ZDE

Dále se musíte přes strukturu dostat až na úroveň hosta. Důležité je znát strukturu objektů ve vCenter databázi.

rootFolder (group-d1) ⇒ Objekty Datacenter (datacenter-1001) ⇒ Pohledy “Hosts and Clusters” (hostFolder)/ “VMs and Templates” (vmFolder) / “Datastores” (datastoreFolder) / “Network” (networkFolder) ⇒ Clustery (domain-c3001) ⇒ Hosty (host-3008)

Jednotlivé identifikátory mohou být u Vás jiné, kromě group-d1, ten je vždy stejný.

Když se proklikáte až ke konkrétnímu hostu, tak krom vlastností a parametrů, které si o něm udržuje vCenter, má i metody (funkce) které můžete volat. Odrolujte úplně dolů.

Pro změnu productLocker Vás bude zajímat právě metoda UpdateProductLockerLocation_Task. Pokud byste si jen chtěli zjistit aktuální umístění VMtools ISO, tak můžete použít QueryProductLockerLocation.


Pozor na cestu, kterou tam zadáváte. Bez uvozovek!!! A tak jak je dostupná pro ESX host. Tzn /vmfs/volumes/…. Pak už jen Invoke Method. Výsledkem je odkaz na Task.

Pokud jste to zadali správně, tak by výsledek Tasku měl být “success”

Pro aktualizaci přes PowerCLI mám jeden OneLiner:

Get-VMhost | %{$_.ExtensionData.UpdateProductLockerLocation_Task("/vmfs/volumes/Shared-iSCSI-01/vmtools/")} | Wait-Task | ft Description,ObjectID,State,Result

Kontrolu nastavení můžete udělat jednoduše

Get-VMHost | Get-AdvancedSetting -Name "UserVars.ProductLockerLocation" | Select-Object Entity,Value