{"id":1499,"date":"2024-02-06T14:57:58","date_gmt":"2024-02-06T13:57:58","guid":{"rendered":"https:\/\/virtualguru.cz\/?p=1499"},"modified":"2024-03-04T22:07:10","modified_gmt":"2024-03-04T21:07:10","slug":"reconfig-nested-esxi-powercli","status":"publish","type":"post","link":"https:\/\/virtualguru.cz\/en\/2024\/02\/06\/reconfig-nested-esxi-powercli\/","title":{"rendered":"Reconfig Nested ESXi &#8211; PowerCli"},"content":{"rendered":"<p>U\u017e se V\u00e1m mo\u017en\u00e1 n\u011bkdy stalo, \u017ee jste pot\u0159ebovali zm\u011bnit konfiguraci Nested ESXi hosta, kterou ale nem\u016f\u017eete ud\u011blat za b\u011bhu. Ne \u017ee by to ne\u0161lo, ale pokud pot\u0159ebujete ud\u011blat rekonfiguraci na v\u00edcero hostech stejnou, tak to n\u011bjakou chv\u00edli zabere. Pokud je\u0161t\u011b ta rekonfigurace vy\u017eaduje m\u00edt VM vypnutou, tak je to o to v\u011bt\u0161\u00ed zdr\u017een\u00ed.<\/p>\n<p>J\u00e1 na jedno takov\u00e9 narazil, kdy\u017e jsem si hr\u00e1l s HoloDesk labem. V\u0161echny Nested hosty, se toti\u017e automaticky vytv\u00e1\u0159\u00ed s firmware typu BIOS, ale p\u0159i upgrade v\u00e1m to bude hl\u00e1sit, \u017ee Legacy BIOS je deprecated a m\u011bli byste p\u0159ej\u00edt na EFI. \u0158eknete si, \u017e\u00e1dn\u00fd probl\u00e9m, tak prost\u011b jeden host po druh\u00e9m vypnu, n\u00e1sledn\u011b ud\u011bl\u00e1m zm\u011bnu a zase zapnu, ale d\u011blejte to u t\u0159eba 4 host\u016f postupn\u011b. U\u017e je to p\u0159ece jen n\u011bjak\u00fd str\u00e1ven\u00fd \u010das.<\/p>\n<p>A tak jsem se rozhodl si napsat script.<\/p>\n<p>V\u00fdhoda PowerCLI je v tom, \u017ee m\u016f\u017eete b\u00fdt p\u0159ipojeni sou\u010dasn\u011b k n\u011bkolika vCenter v jednu chv\u00edli. Pak jen p\u0159i spou\u0161t\u011bn\u00ed vyhled\u00e1vac\u00edch Commandlet\u016f jen zadat proti kter\u00e9mu vCenter to chcete spustit. Je k tomu parametr -Server<\/p>\n<p>P\u0159ikl\u00e1d\u00e1m Script, kter\u00fd se p\u0159ipoj\u00ed k va\u0161emu Nested vCenter i Fyzick\u00e9mu vCenter, p\u0159evede hosta, do Maintenance mode, korektn\u011b vypne, jakmile se vypne i VM, tak ud\u011bl\u00e1 reconfig, znovu zapne a po\u010dk\u00e1, a\u017e se host v Nested vCenter zase p\u0159ipoj\u00ed. N\u00e1sledne p\u0159evede host z Maintenance a pokra\u010duje na dal\u0161\u00edho.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\">$NestConnect = Connect-VIServer vcenter-wld.vcf.sddc.lab\r\n$PhyConnect = Connect-VIserver vcenter.physicaldemo.local\r\n\r\n# Any reconfig specification, that needs to be done on Nested ESXi VM while poweredOff\r\n$specEfi =  New-Object VMware.Vim.VirtualMachineConfigSpec\r\n$specEfi.Firmware = [VMware.Vim.GuestOsDescriptorFirmwareType]::efi \r\n\r\n$NestHosts = Get-VMhost -Server $NestConnect\r\n\r\nforeach ($NestHost in $NestHosts) {\r\n    # working with ViewType is faster\r\n    $NestHost_v = Get-View -VIObject $NestHost\r\n    \r\n    $NestHost_v.EnterMaintenanceMode(1800,$true,$null)\r\n    \r\n    sleep 5\r\n\r\n    $NestHost_v.ShutdownHost($false)\r\n\r\n    $nestHostVM_v = Get-View -ViewType VirtualMachine -Server $PhyConnect -Filter @{'Config.Uuid'=\"$($NestHost_v.Hardware.SystemInfo.Uuid.Substring(18))\"}\r\n    # Wait for VM powered Off\r\n    do {\r\n        sleep 5\r\n        $nestHostVM_v.UpdateViewData()\r\n    } while ($nestHostVM_v.Runtime.Powerstate -ne \"poweredOff\")\r\n\r\n    sleep 2\r\n\r\n    $nestHostVM_v.ReconfigVM($specEfi)\r\n\r\n    sleep 2\r\n\r\n    # Wait till the vCenter Timeout recognize, that Host is disconnected\r\n    do {\r\n        sleep 5\r\n        $NestHost_v.UpdateViewData()\r\n    } while ($NestHost_v.Runtime.ConnectionState -eq \"connected\")\r\n\r\n    $NestHostVM_v.PowerOnVM($null)\r\n\r\n    # Wait for host is connected again\r\n    do {\r\n        sleep 5\r\n        $NestHost_v.UpdateViewData()\r\n    } while ($NestHost_v.Runtime.ConnectionState -ne \"connected\")\r\n\r\n    $NestHost_v.ExitMaintenanceMode(1800)\r\n\r\n    # vSAN stabilize\r\n    sleep 10\r\n}<\/pre>\n<p>Nejzaj\u00edmav\u011bj\u0161\u00ed bylo, zjisit spr\u00e1vnou VM, kterou chceme p\u0159ekonfigurovat. Vyu\u017eil jsem toho, \u017ee Bios UUID jsem schopen vyt\u00e1hnout jak z Nested ESXi, tak z konfigurace VM. Akor\u00e1t jsou oba z\u00e1znamy na prvn\u00ed pohled trochu pomotan\u00e9. Maj\u00ed ale stejn\u00fd konec, tak jsem to pro zjednodu\u0161en\u00ed pou\u017eil.<a href=\"https:\/\/virtualguru.cz\/wp-content\/uploads\/2024\/02\/obrazek-1921.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1500\" src=\"https:\/\/virtualguru.cz\/wp-content\/uploads\/2024\/02\/obrazek-1921-300x101.png\" alt=\"\" width=\"300\" height=\"101\" srcset=\"https:\/\/virtualguru.cz\/wp-content\/uploads\/2024\/02\/obrazek-1921-300x101.png 300w, https:\/\/virtualguru.cz\/wp-content\/uploads\/2024\/02\/obrazek-1921.png 434w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>A je\u0161t\u011b mal\u00fd bonus. Zji\u0161t\u011bn\u00ed jestli V\u00e1m ESXi host b\u011b\u017e\u00ed nad UEFI nebo Legacy BIOS:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">vsish -e get \/hardware\/firmwareType<\/pre>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>U\u017e se V\u00e1m mo\u017en\u00e1 n\u011bkdy stalo, \u017ee jste pot\u0159ebovali zm\u011bnit konfiguraci Nested ESXi hosta, kterou ale nem\u016f\u017eete ud\u011blat za b\u011bhu. Ne \u017ee by to ne\u0161lo,&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/virtualguru.cz\/en\/2024\/02\/06\/reconfig-nested-esxi-powercli\/\">Continue Reading<span class=\"screen-reader-text\">Reconfig Nested ESXi &#8211; PowerCli<\/span> <i class=\"fas fa-angle-right\"><\/i><\/a><\/div>","protected":false},"author":4,"featured_media":1500,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"iawp_total_views":34,"footnotes":""},"categories":[18,5,3],"tags":[],"class_list":["post-1499","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automatizace","category-vsan","category-vsphere","entry"],"_links":{"self":[{"href":"https:\/\/virtualguru.cz\/en\/wp-json\/wp\/v2\/posts\/1499","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/virtualguru.cz\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/virtualguru.cz\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/virtualguru.cz\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/virtualguru.cz\/en\/wp-json\/wp\/v2\/comments?post=1499"}],"version-history":[{"count":6,"href":"https:\/\/virtualguru.cz\/en\/wp-json\/wp\/v2\/posts\/1499\/revisions"}],"predecessor-version":[{"id":1540,"href":"https:\/\/virtualguru.cz\/en\/wp-json\/wp\/v2\/posts\/1499\/revisions\/1540"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/virtualguru.cz\/en\/wp-json\/wp\/v2\/media\/1500"}],"wp:attachment":[{"href":"https:\/\/virtualguru.cz\/en\/wp-json\/wp\/v2\/media?parent=1499"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/virtualguru.cz\/en\/wp-json\/wp\/v2\/categories?post=1499"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/virtualguru.cz\/en\/wp-json\/wp\/v2\/tags?post=1499"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}