PowerCLI által VMware egyre mindenütt felület hypervisor virtualizációs rendszergazdák ESXi támogatott hardver. A VMware PowerShell és PowerCLI segítségével történő kezelésének megtanulása az eszköztár erős kiegészítője. Ebben a PowerCLI oktatóanyagban megtanulja, hogyan kell ezt megtenni.
ebben az oktatóanyagban megtudhatja:
- a VMware infrastruktúrához való csatlakozás alapjai a PowerCLI segítségével
- ismerkedjen meg a VMware objektumok kezeléséhez szükséges parancsmagokkal
- felhatalmazza magát arra, hogy felfedezze
- a VMware további kezelését a PowerCLI segítségével
menjünk hozzá!
Tartalomjegyzék
amire szükséged van és tudnod kell
mielőtt túl messzire jutnál ebben a PowerCLI oktatóanyagban, mindig fontos biztosítani, hogy mindketten ugyanazon az oldalon vagyunk. Ehhez a cikkhez, azt fogom feltételezni, hogy:
- alapvető PowerShell tapasztalattal rendelkezik. Nem kell, hogy egy PowerShell szakértő, bármilyen eszközzel, de bármilyen PowerShell ismerete van jól fogja szolgálni.
- van egy VMware ESXi host vagy vCenter készüléke a csatlakozáshoz és teszteléshez
- Windows (vagy Mac / Linux) munkaállomáson dolgozik
- a PowerCLI már telepítve van, és csatlakoztatva van. Ha nem, nézze meg ezt a PowerCLI telepítési cikket.
a PowerCLI v 11.4.0-t fogom használni. Én fog dolgozni egy Windows 10 munkaállomás Windows PowerShell 5.1, de szívesen használja a PowerShell 6-ot, mivel ennek az oktatóanyagnak a paritása van.
gyűjtsön információkat az ESXi Gazdagépekről a PowerCLI segítségével
mielőtt belemerülne a vSphere környezetünk virtuális rétegébe, érdemes áttekinteni a fizikai hardverréteget. A VMware PowerCLI közvetlenül erre a célra biztosít egy parancsmagot, hogy részletes információkat gyűjtsön a Get-VMHost
néven.
amíg csatlakozik a vCenter-kiszolgálóhoz vagy az ESXi-gazdagéphez, futtassa a következő parancsmagot.
PS51> Get-VMHost
mivel csatlakozom egy vCenter szerver készülékhez, amely két különálló ESXi gazdagépet kezel, néhány alapvető információt kapok a kezelt gazdagépekről. A Get-VMHost
lehetővé teszi a virtualizációs gazdagépek hardveres képességeinek áttekintését. De alapértelmezés szerint a Get-VMHost
nem ad vissza minden információt.
Ha a Get-VMHost
parancsmagot a Format-List
parancsmagra pipálja, akkor az adott gépekkel kapcsolatos összes információ konzol kimenetet kap.
alternatív megoldásként válogathat, és csak az egyes tulajdonságokat választhatja ki azon a vmhost objektumon, amellyel dolgozik:
PS51> Get-VMHost | format-list -Property State,LicenseKey,Version
ennek a bőbeszédűbb kimenetnek a kihasználása még nagyobb képet ad a virtualizált munkaterhelést futtató mögöttes hardverről. Néhány információ, különösen, lenne:
- licenc érvényesítés info
- CPU/memória összesen
- hardver gyártó modell
- DNS hostname
a felülvizsgálat után, ez lehet fordítani egy CSV fájlt talán a Export-CSV
parancsmagot.
A virtuális gépek ellenőrzése a PowerCLI segítségével
most merüljünk el egy másik témában ebben a PowerCLI oktatóanyagban a virtuális gazdagépek áttekintésével annak áttekintése, hogy mely virtuális gépek vannak jelenleg jelen egy adott ESXi gazdagépen.
a Get-VM
parancs egy praktikus parancs, amellyel áttekintheti a virtuális gép adatait.
PS51> Get-VMHost -Name <Host FQDN> | Get-VM
a parancsmag kimenete az alábbiak szerint fog kinézni:
a fenti kimenet az adott gazdagépen jelenleg futó virtuális gépek teljes állapotlistáját tartalmazza. Ha úgy dönt, hogy nem ad meg egyedi gazdagépet, ahogy azt fentebb tettem, akkor minden további gazdagépről és mindegyik virtuális gépről kap egy információs táblázatot.
Ha valaha is hibaelhárítást végez, és tudnia kell egy adott gazdagépen lévő virtuális gépek számát, vagy szüksége van a VMware PowerCLI használatára az ESXi gazdagép információinak összegyűjtéséhez, használhatja ezeket a parancsmagokat. A jelentési funkció van kéznél kezd bővülni!
virtuális kapcsolók ellenőrzése a PowerCLI segítségével
azok számára, akik a vCenter-fürt virtuális hálózatainak konfigurálásával vagy adminisztrálásával vannak megbízva, a hálózati parancsmagok teljes skálája áll rendelkezésre bármilyen felhasználási esetre. Ha szeretné látni a vSphere környezetben konfigurált virtuális kapcsolókat, akkor a következőket fogja használni:
PS51> Get-VirtualSwitch
a virtuális hálózatok és virtuális kapcsolók számától függően az eredményül kapott lista meglehetősen nagy lehet. Az én esetemben, amint az alább látható, van egy DSwitch, amely egy elosztott virtuális kapcsoló.
egy vállalati vSphere implementációban, ahol sok ESXi állomás van egy fürtben, a Dswitchek egyszerűsítik a virtuális kapcsolók és portcsoportok telepítését az azonos konfigurációjú gazdagépek sokaságán. Ez megtakarítja az azonos hálózati konfigurációk kézi létrehozásának kézi munkáját az egyes gazdagépeken, és nagyszerű módja a klaszter méretezésének!
virtuális hálózathoz csatlakoztatott virtuális gépek keresése PowerCLI-vel
miközben megpróbálja szűkíteni a probléma hatókörét, elgondolkodhat azon, hogy melyik virtuális gép melyik hálózathoz csatlakozik. Ehhez használja a Get-VirtualPortGroup
parancsot. Tanuljunk erről a parancsmagról ebben a PowerCLI oktatóanyagban.
a portcsoport lényegében virtuális hálózat. Az összes portcsoport megjelenítéséhez futtassa a Get-VirtualPortGroup
parancsot paraméterek nélkül. Ezután látnia kell a vSphere környezetben jelen lévő összes virtuális portcsoport listáját.
az összes virtuális gép megkeresése a portcsoporton belül (DPortGroup az én esetemben), futtathatja az alábbi szkriptet. Feltétlenül cserélje ki az értéket DPortGroup a virtuális Portcsoport nevére.
PS51> Get-VM | Where-Object { ($PSItem | Get-NetworkAdapter | where {$_.networkname -match "DPortgroup"})}
ebben az egyvonalas, kapunk egy listát az összes virtuális gépek, amelyek léteznek ebben a vCenter készülék, majd szűrés a Where-Object
parancsmagot, hogy csak azokat a virtuális gépeket a hálózat nevét, amely megfelel a Port csoport.
ezzel a kimenettel meghatározhatja, hogy milyen gépek minden hálózathoz csatlakozik és konfigurálva van.
amikor felkérik, hogy keresse meg és elemezze, mely virtuális gépek kapcsolódnak egy adott hálózathoz a VMware-ben, akkor felhatalmazást kap arra, hogy PowerCLI jelentési megoldást nyújtson erre a kérdésre.
az operációs rendszer verziójával kapcsolatos információk beszerzése a virtuális gépeken a PowerCLI segítségével
a VMware-en belüli adminisztratív munka nagy része virtuális gép szintjén történik. Valószínűleg számtalan kérést fog kapni olyan feladatokra, mint például az összes merevlemez-méret listájának lekérése a virtuális gépeken, vagy vendég operációs rendszer-verziók beszerzése az összes szerverhez, többek között.
ezek a feladatok méretarányosan nehézkesek. A PowerCLI képes ezeket ésszerűsíteni néhány fontos parancsmaggal, amelyeket hozzáadhat az arzenáljához, ezért fedjük le őket ebben a PowerCLI oktatóanyagban.
lehet, hogy valamikor megkérdezték: “hány Ubuntu szerverünk van a VMware klaszterünkben?”. Lehet, hogy akkor töltött túl sok időt kattintva körül vCenter keresi a választ. A PowerCLI egyszerűsítheti ezt a folyamatot, ha megnézi a vCenter VM objektumait, és valamilyen PowerShell varázslatot alkalmaz a kimeneten.
vessen egy pillantást a következő szkriptre, amely összehúzza a virtuális gép adatait. Ez a kódrészlet a Get-View
parancsot használja, amelybe egy kicsit később belemegyünk, de egyelőre tudnia kell, hogy ez egy fejlett módszer a VMware objektum tulajdonságainak lekérésére. Ebben az esetben olyan beágyazott tulajdonságokat gyűjtünk össze, amelyek a legkönnyebben visszakereshetők ebben a módszerben.
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}}
a fenti kód letölti a virtuális gépek listáját a PowerCLI Get-VM
parancsmagon keresztül, az említett listát a PowerShell Sort-Object
parancsmaggal rendezi, majd az objektum néhány tulajdonságát a PowerCLI Get-View
parancsmag.
ennek futtatása a környezetemben az alábbi eredményt eredményezi. Láthatja a virtuális gép nevét a vcenterben, a Configured OS
így van beállítva a VMware virtuális hardvere a vendég operációs rendszer értelmezésére, valamint a tényleges Running OS
, amely a tényleges operációs rendszert képviseli.
a virtuális gépek replikánsával és Scripttrunnerével a fürt ki van kapcsolva, nem fogja látni a Running OS
értéket. Az operációs rendszert a VMware Tools szolgáltatás gyűjti össze. Ha nem érhető el, a PowerCLI nem tudja lekérni az operációs rendszer adatait.
CSV jelentések létrehozása A PowerCLI segítségével
A VMware Tools egy vendég szolgáltatás mind Windows, mind Linux virtuális gépek számára, amely további információkat és adminisztrációs képességeket biztosít a hypervisor számára. Leggyakrabban ez biztosítja a tiszta leállítást, az operációs rendszer információit és a virtuális gépek nagyobb felbontású konzolos megtekintését.
ezen információk jelentésének és megadásának kényelmes módja az, ha a fenti szkriptet a Export-CSV
parancsmagba illesztjük. Export-Csv
létrehoz egy CSV fájlt, amely ugyanazokat az információkat tartalmazza, mint a konzolon.
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
a fenti kód futtatása után meg kell tudnia nyitni a CSV fájlt az Excel segítségével a jelentés áttekintéséhez.
virtuális merevlemezek ellenőrzése PowerCLI-vel
a Get-Harddisk
parancs egy másik hasznos parancs, amelyet tudni kell. AGet-HardDisk
parancsmag lehetővé teszi a virtuális gépekhez csatlakoztatott virtuális merevlemezek információinak ellenőrzését.
az exchange1 virtuális géphez csatlakoztatott virtuális merevlemezre vonatkozó információk lekérdezéséhez például a következőket futtathatja:
PS51> Get-VM -Name exchange1 | Get-HardDisk | Format-List
ezen információk egy része felesleges lehet, például a kapacitás KB-ban vagy GB-ban. De van érték a StorageFormat
(vékony/vastag kiépítési típusok) ismeretében. És a VMDK fájlnév ismerete.
ha például egy gyakori problémát lát, és az összes virtuális gép merevlemez ugyanazon az adattár-köteten található, ez a tudás felgyorsíthatja a hibaelhárítást.
virtuális hálózati adapterek ellenőrzése a PowerCLI segítségével
a virtuális gépek merevlemez-információinak áttekintése mellett érdemes lehet ellenőrizni a virtuális hálózati adaptereket is. A Get-NetworkAdpter
parancsmag segítségével ellenőrizheti ezeket a tulajdonságokat egyetlen virtuális gépen.
PS51> Get-NetworkAdapter -VM myVM
míg korábban ebben a portban vadászott az ugyanabban a hálózatban tartózkodó összes virtuális gépre, ezúttal csak az adott virtuális géphez csatlakoztatott adaptereket szeretné látni.
Ez akkor hasznos, ha több hálózati adapterrel rendelkező virtuális gépeket hibaelhárítunk. Gyorsan és egy pillanat alatt megállapíthatja, hogy ezek az adapterek a megfelelő hálózatokhoz vannak-e csatlakoztatva.
PowerShell szkriptek futtatása virtuális gépekben az Invoke-VMScript
a Invoke-VMScript
használatával a PowerShell kódot közvetlenül a virtuális gép belsejében is futtathatja; nincs szükség hálózati kapcsolatra. Ha valaha is használta a PowerShell Direct-et Hyper-V környezetben, ez hasonló élmény lesz.
ahelyett, hogy PowerShell távoli munkamenetet hozna létre, vagy aInvoke-Command
parancsmagot használná a hálózaton keresztül, aInvoke-VMScript
parancsmag parancsokat küldhet közvetlenül a virtuális gépnek normál WinRM vagy SSH kapcsolat nélkül.
példaként talán egy egyszerű könyvtárlistát szeretne végrehajtani egy exchange1 nevű virtuális gépen. Ehhez adja meg a dir C:\
értéket a ScriptText
paraméter értékeként az alábbiak szerint.
PS51> Invoke-VMScript -VM exchange1 -ScriptText "dir C:\"
Az eredmények olyanok, mintha maga a VM konzol futtatta volna a parancsokat. Invoke-VMScript
ezután továbbítja az összes kimenetet, amelyet a virtuális gépen futtattak.
bár ez egy alapvető példa, akkor kap olyan bonyolult, mint szeretné. Ez a PowerCLI parancsmag lehetővé teszi kötegelt, PowerShell vagy Bash típusok megadását a ScriptText
paraméteren belül.
akkor kap fejlettebb is. Az alábbiakban láthatja, hogyan kell használni aInvoke-VMScript
A PowerShell kód futtatásához külön$script
változót aScriptText
paraméter bemenethez. Ez lehetővé teszi számunkra, hogy testre szabottabb szkriptbevitelt hozzunk létre a virtuális gép feldolgozásához.
PS51> $script = 'Get-Disk'$guestCredential = Get-CredentialInvoke-VMScript -ScriptText $script -VM VM -GuestCredential $guestCredential -ScriptType Powershell
a ScriptText
paraméterértéknek karakterláncra van szüksége. Ez az oka annak, hogy a$script
változónak szükségszerűsége az egy-külső idézőjelek.
lehet, hogy észrevette a GuestCredential
paraméter használatát is. Ez a paraméter a virtuális gép operációs rendszerbe történő hitelesítésre szolgál. Ez a paraméter különösen akkor hasznos, ha a szkriptet más fiókként szeretné futtatni.
a parancsfájl működése során az alábbihoz hasonló kimenetet kell eredményeznie.
az eredmény ez a szkript biztosítja számunkra a virtuális gép lemezinformációit. Ennek alapján tudnia kell, hogy ez egy távoli virtuális gép, mivel a VMware Virtual Disk
a meghajtó barátságos neve.
Haladó a Get-View
lehet, hogy néhány alapvető parancsmag visszaadja a ExtensionData
nevű tulajdonságot. Ezt a tulajdonságot úgy találhatja meg, hogy sok PowerCLI parancsmagot a PowerShell Get-Member
parancsmaghoz vezet. Ha kíváncsi volt, mi volt az, most itt az alkalom, hogy megtudja.
a vállalkozás következő lépése a Get-View
parancsmag megértése. A VMware PowerCLI számos különböző lekérdezést használ a virtuális géphez, hogy a Get-VM
szép és egyszerű kimenetét biztosítsa. De van egy csomó a motorháztető alatt, amely csak a Get-View
parancsmag használatával érhető el.
valószínűleg sok szkriptet fog látni ezzel a parancsmaggal. Jó lenne, ha egy kis időt töltene azzal, hogy megszokja, hogy ezt a parancsmagot működés közben látja. A Get-View
parancsmag segítségével megismerheti a virtuális gép adatait (ebben a példában az exchange1).
a parancsmag Filter
opciói PowerShell hashtable használatát igénylik, nem pedig egyedi karakterláncértékeket. Legyen tisztában az épület saját egyedi szkriptek!
PS51> Get-View -ViewType VirtualMachine -Filter @{"Name" = "myVMName"}
a fenti parancs eredménye sok beágyazott konfigurációs információ és Metódus opció a virtuális gép elleni műveletekhez vagy az objektum tulajdonságainak megszerzéséhez.
Ha ugyanazt a szkriptet használja, és elküldi a kimenetet egy változónak, akkor ezeket a beágyazott opciókat A dot segítségével ellenőrizheti jelölés. Itt láthatja és lekérheti a vendég operációs rendszer összes további információját, amelyet esetleg a PowerCLI-n keresztül szeretne jelenteni.
PS51> $VM = Get-View -ViewType VirtualMachine -Filter @{"Name" = "myVMName"}PS51> $VM.Guest
talán egyetlen tulajdonságot szeretne kiválasztani. Ha igen, akkor a következőket futtathatja az egyedi érték szűkítéséhez.
PS51> $VM.Guest.GuestFullName
sok Get-View
opciók minden típusú VMware objektumhoz. Nyugodtan fedezze fel ezeket a lehetőségeket, és tekintse át ezt az informatív cikket a VMware-től, amely mélyrehatóan foglalkozik ezzel az erőteljes parancsmaggal!
VMware Code Capture – tanuljon a kattintásokból
Ha szeretné kihasználni a PowerCLI előnyeit, de inkább nem építene kódot gépeléssel, a Code Capture in vCenter itt van az Ön számára. A Code Capture egy új fejlesztői eszköz, amely hasonlóan működik, mint az Active Directory felügyeleti központ. Fedezzük le a kód rögzítését ebben a PowerCLI oktatóanyagban.
Ez az eszköz rögzíti a GUI-n belüli összes műveletet. Ezután átalakítja ezeket a műveleteket, és biztosítja a PowerCLI szkripteket.
alapértelmezés szerint a Kódrögzítés nincs bekapcsolva. A bekapcsoláshoz nyissa meg a vCenter készüléket, és keresse meg a Menü –> fejlesztői központot az alábbiak szerint.
egyszer a fejlesztői központ fülön kapcsolja be az Enable-t kódrögzítési lehetőség.
a Kódrögzítés engedélyezésekor egy piros Felvétel gomb jelenik meg a vCenter fejlécében. Ha engedélyezve van, amikor azt szeretné, hogy egy műveletet rögzítsen és PowerCLI kimenetté alakítson, akkor a Felvétel gomb megnyomásával rögzítenie kell a GUI tevékenységet.
a piros Felvétel gomb jelenik meg a vCenter bejelentkezett felhasználói része mellett, így most már rekord bármikor.
a Kódrögzítés bemutatásához menjen át az új virtuális gép létrehozása varázslón.
- a felvétel megkezdéséhez kattintson a Felvétel gombra. Ez azt eredményezi, hogy a piros Felvétel gomb pulzálni kezd.
- kattintson a jobb gombbal a VMware gazdagépére, és hozzon létre egy új virtuális Gépet. Futtassa át a kapott varázslót, hozzon létre egy új virtuális Gépet az összes alapértelmezett értékkel.
- a virtuális gép létrehozása után kattintson a Felvétel gombra, és állítsa le a felvételt.
a kapott kimenet kissé bőbeszédűbb lehet a vártnál. A kimenet még a grafikus felhasználói felület böngészésének összes műveletét is tartalmazza a virtuális gép létrehozása előtt. De látnia kell egy részt, amelyet a megjegyzésekben jelölnek, kezdve CreateVM_Task
. Ez az, ahol a kód elkezd létrehozni egy virtuális gépet.
Az alábbiakban egy része a CREATEVM_TASK kimenet az új VM varázsló folyamat a GUI keresztül Code Capture:
Ez a kimenet kissé elsöprő lehet, de közvetlenül kiteszi a virtuális gépek számára elérhető konfigurációs lehetőségek számát. Attól függően, hogy a saját igényeinek, akkor most fel van hatalmazva, hogy kiigazításokat a saját szkripteket, és testre a szíved tartalmát.
A Code Capture segédprogram nem korlátozódik csak a virtuális gép létrehozására. Azt is építeni kódot hálózati változások, kis VM módosítások, vagy host konfigurációs változások. Azáltal, hogy áttekintheti a GUI műveletek PowerCLI kimenetét, parancsikont készíthet a kódként telepített infrastruktúra felé vezető úton.
PowerCLI bemutató összefoglaló
ebben a cikkben, akkor borított egy csomó földet. Szép munka! Remélem, hogy felismerte a PowerCLI erejét a VMware infrastruktúra kezelésében.
a PowerCLI-ben sok parancsmag található a termékbázisok széles skálájához, de itt csak néhányat fedtünk le. Ügyeljen arra, hogy stay tuned, hogy ezt a blogot további cikkeket erről a fantasztikus eszköz!
további olvasmányok
- hogyan kell letölteni és telepíteni PowerCLI
- hivatalos VMware PowerCLI docs