Adam Automator

PowerCLI od VMWare se stává všudypřítomným rozhraním pro správce virtualizace hypervisoru podporovaného hardwaru ESXi. Naučit se spravovat VMware pomocí PowerShell a PowerCLI je silným doplňkem vaší sady nástrojů. V tomto tutoriálu PowerCLI se naučíte, jak to udělat.

v tomto tutoriálu se dozvíte:

  • základy připojení k VMware infrastruktury s PowerCLI
  • seznamte se s cmdlety pro práci s VMware objekty
  • vybavte se s poznatky, aby prozkoumala
  • správa VMware dále přes PowerCLI

Pojďme na to!

Obsah

Co musíte Mít a Vědět,

Než se dostanete příliš daleko v tomto PowerCLI tutorial, je vždy důležité zajistit, aby ty a já jsme oba na stejné stránce. Pro tento článek, budu předpokládat, že:

  • máte základní zkušenosti s PowerShell. V žádném případě nemusíte být odborníkem na PowerShell, ale jakákoli znalost PowerShell, kterou máte, vám bude dobře sloužit.
  • máte VMware ESXi nebo vCenter appliance pro připojení a testování
  • pracujete na Windows (Nebo Mac / Linux) pracovní stanice
  • máte PowerCLI již nainstalován a připojen. Pokud ne, podívejte se na tento instalační článek PowerCLI.

budu používat PowerCLI v 11.4.0. Budu pracovat z pracovní stanice Windows 10 s Windows PowerShell 5.1, ale místo toho můžete použít PowerShell 6, protože pro tento tutoriál existuje parita funkcí.

shromažďujte informace o hostitelích ESXi pomocí PowerCLI

než se ponoříte do virtuální vrstvy našeho prostředí vSphere, je dobré zkontrolovat fyzickou hardwarovou vrstvu. VMware PowerCLI poskytuje rutinu přímo pro tento účel, aby shromáždil podrobné informace nazvané Get-VMHost.

Když jste připojeni k serveru vCenter nebo hostiteli ESXi, spusťte následující rutinu.

PS51> Get-VMHost
Získat-VMHost
Get-VMHost

Od té doby jsem připojen k vCenter Server Appliance, která je správa dvou samostatných ESXi, Já jsem za předpokladu, s některými základní informace o hostitele, že se podařilo. Get-VMHost umožňuje zkontrolovat hardwarové možnosti vašich virtualizačních hostitelů. Ale ve výchozím nastavení Get-VMHost nevrací všechny informace, které může.

Pokud potrubíGet-VMHost cmdlet Format-List, dostanete výstup konzoly pro všechny informace o daných hostitelů.

Získat-VMHost | Format-List
Get-VMHost | Format-List

Případně, můžete být vybíravější a vybrat pouze jednotlivé vlastnosti na VMHost objekt pracujete s, jako:

PS51> Get-VMHost | format-list -Property State,LicenseKey,Version

Využití této podrobnější výstup bude poskytovat ještě větší pohled na základní hardware běží virtualizované pracovní vytížení. Některé informace, zejména, by bylo:

  • ověření Licence info
  • CPU/Paměti součty
  • Hardware vendor model
  • DNS hostname

Poté, co recenze, to může být sestaven do souboru CSV možná pomocí Export-CSV rutiny.

Kontrola VMs s PowerCLI

Pojďme se nyní ponořit do jiného tématu v tomto PowerCLI tutorial zobrazením virtuálních hostitelů je přezkoumání, které virtuální stroje jsou v současné době na dané hostitele ESXi.

příkaz Get-VM je šikovný příkaz, který můžete použít ke kontrole informací VM.

PS51> Get-VMHost -Name <Host FQDN> | Get-VM

výstup této rutiny bude vypadat nějak níže:

PS51 Dostat-VMHost -Název Hostitele, plně kvalifikovaný název DOMÉNY | Get-VM
PS51> Get-VMHost -Název | Get-VM

Výstup výše poskytuje kompletní přehled o stavu současné době běží VMs na dané hostitele. Pokud se rozhodnete zadat individuální hostitele, jako jsem učinil výše, obdržíte tabulka informace pro každý následující hostitele a Vm na každého.

Pokud někdy řešíte problém a potřebujete znát počet virtuálních počítačů na daném hostiteli nebo potřebujete použít VMware PowerCLI ke shromažďování informací o hostiteli ESXi, můžete použít tyto rutiny do budoucna. Funkce hlášení, kterou máte na dosah ruky, se začíná rozšiřovat!

Kontrola Virtuálního Přepínače s PowerCLI

Pro ty z nás, obviněn konfiguraci nebo správu virtuálních sítí vCenter clusteru, je plný rozsah sítí rutin pro jakýkoli případ použití. Pokud chcete vidět virtuální přepínače nakonfigurován ve vašem prostředí vSphere, které budete používat následující:

PS51> Get-VirtualSwitch

v Závislosti na počtu virtuálních sítí a virtuálních přepínačů, je výsledný seznam může být poměrně velké. V mém případě, jak vidíte níže, mám jediný přepínač, který je distribuovaným virtuálním přepínačem.

v podnikové implementaci vSphere, kde je v clusteru mnoho hostitelů ESXi, DSwitches zjednodušují nasazení virtuálních přepínačů a skupin portů na velké množství hostitelů se stejnou konfigurací. To šetří ruční práci při vytváření identických síťových konfigurací na každém hostiteli ručně a je to skvělý způsob, jak škálovat cluster!

Získat-VirtualSwitch
Get-VirtualSwitch

Hledání VMs Připojené k Virtuální Síti s PowerCLI

Zatímco se snaží zúžit rozsah problému, možná se divíte, VMs, které jsou připojeny k sítí, které. Chcete-li to zjistit, můžete použít příkaz Get-VirtualPortGroup. Pojďme se dozvědět o této rutině v tomto tutoriálu PowerCLI.

skupina portů je v podstatě virtuální síť. Chcete-li zobrazit všechny skupiny portů, spusťte Get-VirtualPortGroup bez jakýchkoli parametrů. Pak byste měli vidět seznam všech skupin virtuálních portů přítomných ve vašem prostředí vSphere.

Získat-VirtualPortGroup
Get-VirtualPortGroup

najít všechny VMs uvnitř, že port group (DPortGroup v mém případě), můžete spustit níže uvedený skript. Nezapomeňte nahradit hodnotu DPortGroup názvem skupiny virtuálních portů.

PS51> Get-VM | Where-Object { ($PSItem | Get-NetworkAdapter | where {$_.networkname -match "DPortgroup"})}

V této one-liner, jsme získali seznam všech virtuálních počítačů, které existují v tomto vCenter appliance, a pak filtrování s Where-Object rutiny získat pouze ty VMs s název sítě, který odpovídá naší Port Group.

VMs pouze s konkrétní port group
VMs pouze s konkrétní port group

tento výstup, budete moci definovat, co stroje jsou propojeny a nakonfigurovány pro každou síť.

Když se zeptal, najít a analyzovat, které VMs připojeni k určité síti v prostředí VMware nyní bude oprávněna poskytovat PowerCLI reporting řešení na tuto otázku.

získání informací o verzi operačního systému na VMs pomocí PowerCLI

většina administrativních prací uvnitř VMware se provádí na úrovni virtuálního počítače. Pravděpodobně obdržíte nespočet požadavků na úkoly, jako je načtení seznamu všech velikostí pevného disku na VMs nebo získání verzí hostujícího operačního systému pro všechny vaše servery.

tyto úkoly jsou těžkopádné v měřítku. PowerCLI je dokáže zefektivnit pomocí několika důležitých rutin, které můžete přidat do svého arzenálu, takže je pokryjeme v tomto tutoriálu PowerCLI.

možná jste byli někdy dotázáni: „kolik serverů Ubuntu máme v našem clusteru VMware?”. Možná jste pak strávili příliš mnoho času kliknutím na vCenter hledáním odpovědi. PowerCLI může tento proces zefektivnit tím, že se podívá na objekty VM ve vCenter a použije na výstup nějakou magii PowerShell.

podívejte se na následující skript, který spojuje informace VM. Tento úryvek používá příkaz Get-View , do kterého půjdeme o něco později, ale prozatím byste měli vědět,že se jedná o pokročilý způsob, jak načíst vlastnosti objektů VMware. V tomto případě shromažďujeme vnořené vlastnosti, které jsou v této metodě nejsnadněji načteny.

PS51> Get-VM | Sort-Object -Property Name | Get-View -Property @("Name", "Config.GuestFullName", "Guest.GuestFullName") | Select-Object -Property Name, @{N="Configured OS";E={$_.Config.GuestFullName}}, @{N="Running OS";E={$_.Guest.GuestFullName}}

výše uvedený kód je načtení seznamu virtuálních strojů přes PowerCLI Get-VM rutiny, třídění řekl, že seznam s PowerShell Sort-Object rutinu, a pak načítání některé vlastnosti objektu pomocí PowerCLI Get-View rutiny.

spuštění tohoto v mém prostředí přináší výsledek níže. Můžete vidět název VM ve vCenter, Configured OS což je, jak VMware virtual hardware je nastaven interpretovat hostovaného operačního systému, a skutečné Running OS, který představuje skutečný OS.

Hledání VMs na základě různých kritérií
Hledání VMs na základě různých kritérií,

S VMs replikant a Scriptrunner jsou vypnuté v clusteru, nebudete mít možnost vidět Running OS hodnotu pro ně. OS je shromažďován službou VMware Tools. Pokud není k dispozici, PowerCLI nemůže vytáhnout informace o operačním systému.

Vytvoření CSV Zprávy s PowerCLI

VMware Tools je v-guest service pro Windows a Linux, VMs, který poskytuje hypervisor další informace a administrativní schopnosti. Nejčastěji to bude poskytovat čisté vypnutí, informace o operačním systému, a vyšší rozlišení konzole prohlížení VM.

pohodlný způsob, jak podat zprávu a poskytnout tyto informace, by bylo potrubí výše uvedeného skriptu doExport-CSV rutina. Export-Csv vytvoří soubor CSV se stejnými informacemi, jaké vidíte v konzole.

PS51> Get-VM | Sort-Object -Property Name | Get-View -Property @("Name", "Config.GuestFullName", "Guest.GuestFullName") |Select -Property Name, @{N="Configured OS";E={$_.Config.GuestFullName}}, @{N="Running OS";E={$_.Guest.GuestFullName}} | Export-CSV C:\report.csv -NoTypeInformation 

po spuštění výše uvedeného kódu byste měli mít možnost otevřít soubor CSV v aplikaci Excel a zkontrolovat sestavu.

CSV VM informací
CSV VM informací

Kontrola Virtuální pevné Disky s PowerCLI

Get-Harddisk příkaz je další užitečný příkaz vědět. Get-HardDisk rutina umožňuje kontrolovat informace o virtuálních pevných discích připojených k VMs.

Chcete-li například dotazovat informace o virtuálním pevném disku připojeném k VMs exchange1, můžete spustit následující:

PS51> Get-VM -Name exchange1 | Get-HardDisk | Format-List
query informace o virtuální pevný disk připojený k exchange1 VMs
Dotazování informace o virtuální pevný disk připojený k exchange1 VMs

Některé z těchto informací mohou být redundantní, jako je kapacita v KB vs. GB. Ale je důležité znát StorageFormat (tenké / tlusté typy provisioning). A znát název souboru VMDK.

například, ff vidíte společný problém a všechny VM pevné disky jsou umístěny na stejné datastore objem, tato znalost může urychlit řešení problémů.

kontrola virtuálních síťových adaptérů pomocí PowerCLI

kromě kontroly informací o pevném disku vašich virtuálních strojů můžete také zkontrolovat virtuální síťové adaptéry. Chcete-li zkontrolovat tyto vlastnosti pro jeden VM, můžete použít Get-NetworkAdpter rutinu.

PS51> Get-NetworkAdapter -VM myVM

zatímco jste dříve lovili v tomto portu pro všechny VM umístěné ve stejné síti, tentokrát chcete vidět pouze adaptéry připojené k určitému VM.

Získat-NetworkAdapter
Get-NetworkAdapter

Toto je užitečné v případě řešení problémů VMs, které mají více síťových adaptérů připojených. Můžete rychle a na první pohled zjistit, zda jsou tyto adaptéry připojeny ke správným sítím.

Běží PowerShell Skripty v VMs s Invoke-VMScript

Pomocí Invoke-VMScript, můžete také spustit PowerShell kód přímo uvnitř VM, žádné síťové připojení nutné. Pokud jste někdy použili PowerShell Direct v prostředí Hyper-V, bude to podobná zkušenost.

Namísto vytváření PowerShell Remoting relace, nebo pomocí Invoke-Command cmdlet přes síť, Invoke-VMScript rutiny může posílat příkazy přímo do VM, bez normální WinRM nebo SSH připojení.

jako příklad, možná byste chtěli provést jednoduchý výpis adresáře na VM s názvem exchange1. Chcete-li tak učinit, předáte dir C:\ jako hodnotu pro parametr ScriptText, jak je uvedeno níže.

PS51> Invoke-VMScript -VM exchange1 -ScriptText "dir C:\"

výsledky jsou, jako byste spustili příkazy ze samotné konzoly VM. Invoke-VMScript pak předá veškerý výstup příkaz, který byl spuštěn na VM, se vrátí.

Invoke-VMScript
Invoke-VMScript

Zatímco tohle je základní příklad, můžete dostat tak složité, jak byste chtěli. Tato rutina PowerCLI umožňuje zadat dávkové, PowerShell nebo Bash typy v rámci parametru ScriptText.

můžete získat pokročilejší stejně. Níže můžete vidět, jak používat Invoke-VMScript spustit PowerShell kód pomocí samostatného $script proměnné ScriptText vstupní parametr. To nám umožňuje vytvořit více přizpůsobený vstup skriptu pro zpracování VM.

PS51> $script = 'Get-Disk'$guestCredential = Get-CredentialInvoke-VMScript -ScriptText $script -VM VM -GuestCredential $guestCredential -ScriptType Powershell

hodnota parametru ScriptText potřebuje řetězec. Proto má proměnná $script jako nutnost jednoduché uvozovky.

možná jste si také všimli použití parametru GuestCredential. Tento parametr se používá k ověření do operačního systému VM. Tento parametr je zvláště užitečný, pokud chcete skript spustit jako jiný účet.

váš skript v akci by měl mít za následek výstup podobný níže.

Běží skript na VM s Invoke-VMScript
Běží skript na VM s Invoke-VMScript

výsledek tohoto skriptu nám poskytuje s VM to informace o disku. Na základě toho byste měli vědět, že je to vzdálený VM, protože VMware Virtual Disk jako přátelský název jednotky.

Pokročilé s-View

možná Jste viděli některé ze základních rutin vrátí vlastnost se nazývá ExtensionData. Tuto vlastnost můžete najít potrubím mnoha cmdletů PowerCLI do rutiny PowerShell Get-Member cmdlet. Pokud vás zajímalo, co to bylo, teď máte šanci to zjistit.

dalším krokem v tomto podniku je pochopeníGet-View rutina. VMware PowerCLI využívá mnoho různých dotazů, aby VM poskytnout pěkný a jednoduchý výstup Get-VM. Ale pod kapotou je spousta, která je přístupná pouze pomocí rutiny Get-View.

pravděpodobně uvidíte mnoho skriptů používajících tuto rutinu. Bylo by dobré, kdybyste si zvykli na to, že tuto rutinu uvidíte v akci. Chcete-li se seznámit, použijte rutinu Get-View pro získání některých informací o virtuálním stroji (exchange1 v tomto příkladu).

můžete vidět, Filter možnosti této rutiny vyžadují použití PowerShell hashtable a ne jednotlivé hodnoty řetězce. Buďte si vědomi při vytváření vlastních jedinečných skriptů!

PS51> Get-View -ViewType VirtualMachine -Filter @{"Name" = "myVMName"}

výsledkem výše uvedeného příkazu je mnoho vnořených konfiguračních informací a možností metod pro provádění akcí proti VM nebo získání vlastností objektu.

-Zobrazení
-Zobrazení

Pokud používáte stejný scénář výše a poslat výstup do proměnné, můžete zkontrolovat ty vnořené volby s dot notace. Zde si můžete prohlédnout a získat všechny tyto dodatečné informace o hostujícím operačním systému, které budete chtít nahlásit prostřednictvím PowerCLI.

PS51> $VM = Get-View -ViewType VirtualMachine -Filter @{"Name" = "myVMName"}PS51> $VM.Guest
Pomocí Get-Zobrazení s Filtrem Parametr
Pomocí Get-Zobrazení s Filtrem Parametr

Možná chcete vybrat jedinou vlastnost. Pokud ano, můžete spustit následující zúžit individuální hodnotu.

PS51> $VM.Guest.GuestFullName

existuje mnoho možností Get-View pro všechny typy objektů VMware. Neváhejte prozkoumat všechny tyto možnosti a recenze tento informativní článek od VMware, který jde do hloubky na této výkonné rutiny!

VMware Kód Capture – Učit se ze svých Kliknutí

Pokud byste chtěli využít PowerCLI, ale raději ne stavět kódu zadáním Kódu Zachytit v vCenter je tu pro vás. Code Capture je nový vývojářský nástroj, který funguje podobně jako administrativní centrum služby Active Directory. Pojďme pokrýt zachycení kódu v tomto tutoriálu PowerCLI.

tento nástroj zaznamenává všechny akce, které provedete v GUI. Poté transformuje všechny tyto akce a poskytuje vám skripty PowerCLI.

ve výchozím nastavení není zachycení kódu zapnuto. Chcete-li jej zapnout, otevřete zařízení vCenter a přejděte do nabídky – > vývojové centrum, jak je uvedeno níže.

Navigace do Developer Center menu v vSphere
Navigace do Developer Center menu v vSphere

Jakmile se na Developer Center kartu, přepínač Povolit Kód Zachytit možnost.

Uvolňovací kód zachytit
Uvolňovací kód zachytit

Pokud aktivujete Kód Zachytit, pak uvidíte červené tlačítko Record ve vašem vCenter záhlaví. Jakmile je povoleno, kdykoli chcete mít akci zaznamenanou a přeměněnou na výstup PowerCLI, musíte zaznamenat aktivitu GUI stisknutím tlačítka record.

Kód zachytit povoleno indikátor
Kód zachytit povoleno indikátor

Na červené tlačítko záznamu se objeví vedle vašeho přihlášeného uživatele sekce vCenter, takže nyní můžete nahrávat kdykoliv.

Chcete-li demonstrovat zachycení kódu, projděte průvodce vytvořením nového virtuálního stroje.

  1. klikněte na tlačítko Record pro zahájení nahrávání. To způsobí, že červené tlačítko záznamu začne pulzovat.
  2. klepněte pravým tlačítkem myši na hostitele VMware a vytvořte nový virtuální stroj. Projděte výsledným průvodcem vytvořením nového virtuálního počítače se všemi výchozími hodnotami.
  3. jakmile je virtuální stroj vytvořen, klikněte na tlačítko record a zastavte nahrávání.

výsledný výstup může být o něco podrobnější, než se předpokládalo. Výstup dokonce zahrnuje všechny akce procházení GUI před vytvořením VM. Ale měli byste vidět sekci označenou v komentářích začínající CreateVM_Task. To je místo, kde kód začne vytvářet VM.

Níže je část CreateVM_Task výstup z New VM Wizard proces v GUI pomocí Kódu Zachytit:

Developer Center vygenerovaný kód
Developer Center vygenerovaný kód

Tento výstup může být trochu ohromující, ale to vás vystavuje přímo na číslo z možnosti konfigurace k dispozici, aby vaše virtuální stroje. V závislosti na vašich vlastních potřebách jste nyní oprávněni provádět úpravy ve vlastních skriptech a přizpůsobovat se obsahu vašeho srdce.

Nástroj pro zachycení kódu není omezen pouze na vytvoření VM. Může také vytvářet kód pro změny v síti, malé úpravy VM nebo změny konfigurace hostitele. Tím, že budou moci přezkoumat PowerCLI výstup GUI akcí si můžete vzít zkratku na vaší cestě k infrastruktuře nasazen jako kód.

PowerCLI shrnutí tutoriálu

v tomto článku jste pokryli hodně půdy. Dobrá práce! Doufám, že jste si uvědomili sílu, kterou PowerCLI přináší správě infrastruktury VMware.

V PowerCLI je mnoho cmdletů pro širokou škálu produktových základen, ale zde jsme pokryli jen několik. Ujistěte se, že zůstaňte naladěni na tento blog, kde najdete další články o tomto úžasném nástroji!

Další Čtení

  • Jak Stáhnout a Nainstalovat PowerCLI
  • Oficiální VMware PowerCLI docs

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.