PowerCLI by VMWare is becoming the ubiquitous interface for hypervisor virtualization administrator of ESXi supported hardware. VMwaren hallinnan oppiminen PowerShellin ja Powerclin kautta on vahva lisä työkalupakkiisi. Tässä PowerCLI opetusohjelma, aiot oppia tekemään juuri niin.
tässä opetusohjelmassa opit:
- the basics of connecting to VMware infrastructure with Powerclilla
- tutustu cmdleteihin VMware-objektien kanssa työskentelyyn
- anna itsellesi tieto tutkia
- hallita VMwarea edelleen Powerclillä
Let ’ s get to it!
Sisällysluettelo
mitä sinun tulee olla ja tietää
ennen kuin pääset liian pitkälle tässä Powerclin opetusohjelmassa, on aina tärkeää varmistaa, että olemme molemmat samalla sivulla. Tämän artikkelin, aion olla olettaen, että:
- sinulla on perus PowerShell-kokemus. Sinun ei tarvitse olla PowerShell-asiantuntija millään tavalla, mutta kaikki PowerShell-tuntemuksesi palvelee sinua hyvin.
- sinulla on VMware ESXi-isäntä-tai vCenter-laite liittämiseen ja testaamiseen
- työskentelet Windows (tai Mac/Linux) – työasemalla
- sinulla on PowerCLI jo asennettuna ja ne on kytketty. Jos ei, tutustu PowerCLI asennus artikkeli.
I ’ ll be using PowerCLI v 11.4.0. Työskentelen Windows 10-työasemasta, jossa on Windows PowerShell 5.1, mutta olet tervetullut käyttämään PowerShell 6: ta sen sijaan, koska tässä opetusohjelmassa on ominaisuuspariteetti.
kerää tietoa ESXi-isännistä Powerclillä
ennen kuin sukellat virtuaaliseen vSphere-ympäristöömme, on hyvä idea käydä läpi fyysinen laitteistokerros. VMware PowerCLI tarjoaa tähän tarkoitukseen suoraan cmdletin, johon voi kerätä yksityiskohtaisia tietoja nimellä Get-VMHost
.
kun olet yhteydessä vCenter-palvelimeen tai ESXi-palvelimeen, suorita seuraava cmdlet.
PS51> Get-VMHost
koska olen yhteydessä vCenter-palvelinlaitteeseen, joka hallinnoi kahta erillistä ESXi-isäntää, minulle on toimitettu joitakin perustietoja isäntien hallinnasta. Get-VMHost
voit tarkistaa virtualisointi-isäntien laitteistokyvyt. Mutta oletusarvoisesti Get-VMHost
ei palauta kaikkea mahdollista tietoa.
Jos piippaat Get-VMHost
cmdlet Format-List
, saat konsolitulosteen kaikista annetuista isännistä.
p>vaihtoehtoisesti voit olla pickier ja valita vain yksittäisiä ominaisuuksia vmhost-objektista, jonka kanssa työskentelet:
PS51> Get-VMHost | format-list -Property State,LicenseKey,Version
tämän monisanaisemman ulostulon hyödyntäminen antaa vielä suuremman kuvan taustalla olevasta laitteistosta, joka suorittaa virtualisoituja työkuormia. Joitakin tietoja, erityisesti, olisi:
- lisenssin validointi info
- suoritin/Muisti yhteensä
- Laitteistotoimittajan malli
- DNS hostname
tarkastelun jälkeen tämä voidaan koota CSV-tiedostoksi ehkä käyttämällä Export-CSV
cmdlet.
VMS: n tarkastaminen Powerclillä
nyt sukelletaan toiseen aiheeseen tässä PowerCLI-opetusohjelmassa tarkastelemalla virtuaalisia isäntiä, tarkistetaan, mitkä virtuaalikoneet ovat tällä hetkellä läsnä tietyssä ESXi-isännässä.
Get-VM
komento on kätevä komento, jolla voi tarkistaa VM: n tietoja.
PS51> Get-VMHost -Name <Host FQDN> | Get-VM
tämän cmdletin ulostulo näyttää suunnilleen samalta kuin alla:
yllä oleva tuloste tarjoaa täydellisen tilaluettelon tällä hetkellä käynnissä olevista vms-järjestelmistä tietyllä palvelimella. Jos päätät olla määrittelemättä yksittäistä isäntää, kuten olen tehnyt edellä, saat taulukon tiedot jokaisesta seuraavasta isännästä ja kunkin VMs: stä.
Jos olet joskus vianmäärityksessä ja haluat tietää virtuaalikoneiden määrän tietyssä isännässä tai sinulla on tarve käyttää VMware Powercliä ESXi-isäntätietojen keräämiseen, voit käyttää näitä cmdletejä eteenpäin. Hyppysissäsi oleva raportointitoiminto alkaa laajentua!
Virtuaalikytkinten tarkastaminen Powerclillä
niille meistä, jotka ovat vastuussa vCenter Clusterin virtuaaliverkkojen määrittämisestä tai hallinnoinnista, on olemassa täysi valikoima verkkoyhteyksiä mihin tahansa käyttötapaukseen. Jos haluat nähdä virtuaalikytkimet, jotka on määritetty vSphere-ympäristössäsi, käytät seuraavaa:
PS51> Get-VirtualSwitch
riippuen virtuaaliverkkojen ja virtuaalikytkimien määrästä, tuloksena oleva luettelo voi olla melko suuri. Minun tapauksessani, kuten näette alla, minulla on yksi DSwitch, joka on jaettu virtuaalinen kytkin.
Enterprise vSphere-toteutuksessa, jossa klusterissa on useita ESXi-isäntiä, DSW-Kytkimet yksinkertaistavat virtuaalikytkimien ja porttiryhmien käyttöönottoa lukuisissa isännissä, joilla on sama kokoonpano. Tämä säästää manuaalista työtä luoda identtinen verkko kokoonpanojen kunkin isännän manuaalisesti, ja on hyvä tapa skaalata klusterin!
Finding VMS Attached to a Virtual Network with PowerCLI
yrittäessäsi rajata ongelman laajuutta saatat ihmetellä, mitkä VMS: t ovat yhteydessä mihinkin verkkoon. Sen voi selvittää komennolla Get-VirtualPortGroup
. Katsotaanpa oppia tästä cmdlet tässä PowerCLI opetusohjelma.
porttiryhmä on käytännössä virtuaaliverkko. Näytä kaikki porttiryhmät ajamalla Get-VirtualPortGroup
ilman parametreja. Tämän jälkeen sinun pitäisi nähdä luettelo kaikista virtuaaliporttiryhmistä, jotka ovat läsnä vSphere-ympäristössäsi.
löytää kaikki kyseisen porttiryhmän (DPortGroup minun tapauksessani), voit suorittaa alla skripti. Muista korvata arvo dportgroup virtuaalisen Porttiryhmän nimellä.
PS51> Get-VM | Where-Object { ($PSItem | Get-NetworkAdapter | where {$_.networkname -match "DPortgroup"})}
tällä One-linerilla saamme listan kaikista virtuaalikoneista, joita tässä vCenter-laitteessa on, ja sitten suodatamme Where-Object
cmdlet, jotta saamme vain ne VMS: t, joiden verkon nimi vastaa Porttiryhmäämme.
tällä ulostulolla voit määritellä, mitä koneita on kytketty ja määritetty kullekin verkolle.
kun sinua pyydetään paikantamaan ja analysoimaan, mitkä VMs: t ovat yhteydessä tiettyyn verkkoon VMwaressa, sinulla on nyt valtuudet tarjota Powercliraportointiratkaisu tähän kysymykseen.
käyttöjärjestelmän Versiotietojen saaminen VMS: ään Powerclillä
suurin osa VMwaren sisäisestä hallinnollisesta työstä tehdään virtuaalikonetasolla. Olet todennäköisesti saada lukemattomia pyyntöjä tehtäviä, kuten hakemalla luettelon kaikista kiintolevyn koot VMS tai saada vieras käyttöjärjestelmä versiot kaikille palvelimille muun muassa.
nämä tehtävät ovat mittakaavaltaan hankalia. PowerCLI pystyy virtaviivaistamaan näitä muutamalla tärkeällä cmdletillä, jotka lisäävät arsenaaliisi, joten katetaan ne tässä PowerCLI-opetusohjelmassa.
sinulta on saatettu kysyä jossain vaiheessa: ”kuinka monta Ubuntu-palvelinta meillä on VMware-klusterissamme?”. Olet ehkä sitten viettänyt aivan liian paljon aikaa klikkaamalla ympäri vCenter etsivät vastausta. PowerCLI voi virtaviivaistaa tätä prosessia katsomalla VM-objekteja vcenterissä ja soveltamalla joitain PowerShell-taikoja ulostulossa.
katso seuraava kirjoitus, joka kokoaa yhteen VM: n tiedot. Tämä pätkä käyttää Get-View
– komentoa, johon siirrymme hieman myöhemmin, mutta toistaiseksi sinun pitäisi tietää, että se on edistyksellinen tapa hakea VMware-objektin ominaisuuksia. Tässä tapauksessa keräämme sisäkkäisiä ominaisuuksia, jotka ovat helpoimmin haettavissa tällä menetelmällä.
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}}
yllä oleva koodi hakee virtuaalikoneiden listaa Powerclillä Get-VM
cmdlet, lajittelee mainitun listan Powershellilla Sort-Object
cmdlet, ja hakee sitten joitain objektin ominaisuuksia Powerclillä Get-View
cmdlet.
tämän juokseminen omassa ympäristössäni tuottaa alla olevan tuloksen. VM: n nimen voi nähdä vcenterissä, Configured OS
millä tavalla VMwaren virtuaalilaitteet on asetettu tulkitsemaan vieraiden käyttöjärjestelmää, ja todellisen Running OS
, joka edustaa varsinaista käyttöjärjestelmää.
With the VMS replikant and Scriptrunner are powered in the cluster, et voi nähdä Running OS
arvoa niille. Käyttöjärjestelmän kokoaa VMware Tools-palvelu. Jos sitä ei ole saatavilla, PowerCLI ei voi vetää käyttöjärjestelmän tietoja.
CSV-Raporttien luominen Powerclillä
VMware Tools on in-guest-palvelu sekä Windows-että Linux VMs: lle, joka tarjoaa hypervisorille lisätietoja ja hallinnollisia ominaisuuksia. Yleisimmin tämä tarjoaa clean-shutdown, käyttöjärjestelmän tiedot, ja korkeamman resoluution konsolin katselu VMS.
kätevä tapa raportoida ja antaa nämä tiedot olisi liittää yllä oleva kirjoitus Export-CSV
cmdlet. Export-Csv
luo CSV-tiedoston, jossa on samat tiedot kuin konsolissa.
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
kun Yllä oleva koodi on ajettu, CSV-tiedosto pitäisi pystyä avaamaan Excelillä raportin tarkistamista varten.
tarkastaa virtuaalisia kiintolevyjä Powerclillä
Get-Harddisk
komento on toinen hyödyllinen komento tietää. Get-HardDisk
cmdlet mahdollistaa VMS: ään liitettyjen virtuaalisten kiintolevyjen tietojen tarkastamisen.
esimerkiksi exchange1 VMs: ään liitetyn virtuaalisen kiintolevyn tietojen tiedusteluun voit käyttää seuraavia:
PS51> Get-VM -Name exchange1 | Get-HardDisk | Format-List
jotkut näistä tiedoista voivat olla tarpeettomia, kuten kapasiteetti KB vs. GB. Mutta StorageFormat
(thin/thick provisioning types) tuntemisella on arvoa. Ja tietää VMDK-tiedostonimen.
esimerkiksi, jos näet yhteisen ongelman ja kaikki VM-kiintolevyt sijaitsevat samalla datastore-taltiolla, tämä tieto voi nopeuttaa vianmääritystä.
virtuaalisten Verkkosovittimien tarkastaminen Powerclillä
virtuaalikoneiden kiintolevytietojen tarkistamisen lisäksi kannattaa tarkistaa myös virtuaaliset verkkosovittimet. Jos haluat tarkistaa nämä ominaisuudet yksittäiselle VM: lle, voit käyttää Get-NetworkAdpter
cmdlet.
PS51> Get-NetworkAdapter -VM myVM
vaikka olit metsästänyt aiemmin tässä portissa kaikkia samassa verkossa asuvia VMs: iä, tällä kertaa haluat nähdä vain tiettyyn VM: ään liitetyt sovittimet.
tästä on hyötyä, jos vianmääritysverkko, johon on kytketty useita verkkosovittimia. Voit nopeasti ja yhdellä silmäyksellä selvittää, onko nämä sovittimet kytketty asianmukaisiin verkkoihin.
Suorita PowerShell-skriptejä VMs: ssä Invoke-VMScript
käyttämällä Invoke-VMScript
voit myös ajaa PowerShell-koodin suoraan VM: n sisällä; verkkoyhteyksiä ei tarvita. Jos olet joskus käyttänyt PowerShell Directia Hyper-V-ympäristössä, tämä on samanlainen kokemus.
sen sijaan, että luodaan PowerShell-Uusintaistelu tai käytetään Invoke-Command
cmdlet verkon yli, Invoke-VMScript
cmdlet voi lähettää komentoja suoraan VM: lle ilman normaalia WinRM-tai SSH-yhteyttä.
esimerkkinä, ehkä haluat suorittaa yksinkertaisen hakemistolistauksen VM: llä nimeltä exchange1. Tällöin dir C:\
arvoksi ScriptText
parametrille kuten alla on esitetty.
PS51> Invoke-VMScript -VM exchange1 -ScriptText "dir C:\"
tulokset ovat kuin komentoja olisi ajettu itse VM-konsolilta. Invoke-VMScript
välittää tämän jälkeen kaikki lähdöt, jotka VM: ssä ajettu komento palauttaa.
vaikka tämä on perusesimerkki, voi siitä tulla niin monimutkainen kuin haluaa. Tämän PowerCLI cmdletin avulla voit määrittää erä -, PowerShell-tai Bash-tyypit ScriptText
– parametrin sisällä.
Voit myös edistyä. Alla näet, miten Invoke-VMScript
ajaa PowerShell-koodin erillisellä $script
muuttuja ScriptText
parametrisyöte. Näin voimme luoda enemmän räätälöityjä script input VM käsitellä.
PS51> $script = 'Get-Disk'$guestCredential = Get-CredentialInvoke-VMScript -ScriptText $script -VM VM -GuestCredential $guestCredential -ScriptType Powershell
ScriptText
parametrin arvo tarvitsee merkkijonon. Tämän vuoksi $script
muuttujan yhden ulomman lainausmerkit ovat välttämättömyys.
olet saattanut myös huomata GuestCredential
– parametrin käytön. Tätä parametria käytetään todennettaessa VM-käyttöjärjestelmään. Tämä parametri on erityisen hyödyllinen, jos haluat suorittaa komentosarjan eri tilinä.
komentosarjasi toiminnassa pitäisi johtaa samanlaiseen tulosteeseen kuin alla.
tämän kirjoituksen tulos antaa meille VM: n levytiedot. Sen perusteella pitäisi tietää, että kyseessä on kauko-VM, koska VMware Virtual Disk
aseman ystävällisenä nimenä.
Getting Advanced with Get-View
olet ehkä nähnyt joidenkin perus-cmdletien palauttavan ominaisuuden nimeltä ExtensionData
. Löydät tämän ominaisuuden antamalla useita Powerclit cmdletejä powershelliin Get-Member
cmdlet. Jos mietit, mikä se oli, nyt on tilaisuutesi ottaa selvää.
seuraava askel tässä hankkeessa on Get-View
cmdlet. VMware PowerCLI hyödyntää VM: lle monia erilaisia kyselyitä, jotta Get-VM
saadaan nätti ja yksinkertainen ulostulo. Konepellin alla on kuitenkin paljon sellaista, johon pääsee vain Get-View
cmdlet.
näet todennäköisesti paljon skriptejä, jotka käyttävät tätä cmdletiä. Sinun kannattaisi totutella näkemään tämä cmdlet toiminnassa. Jos haluat tutustua, käytä Get-View
cmdlet saadaksesi joitakin virtuaalikoneen tietoja (exchange1 tässä esimerkissä).
näet Filter
tämän cmdletin asetukset edellyttävät PowerShell-hajautustaulun käyttöä, eivät yksittäisiä merkkijonoarvoja. Ole tietoinen, kun rakennat omia ainutlaatuisia skriptejä!
PS51> Get-View -ViewType VirtualMachine -Filter @{"Name" = "myVMName"}
yllä olevan komennon tuloksena on paljon sisäkkäisiä konfiguraatiotietoja ja metodivaihtoehtoja VM: ää vastaan toimimiseen tai objektin ominaisuuksien saamiseen.
notaatio. Täällä voit nähdä ja hakea kaikki nämä lisätiedot vieras käyttöjärjestelmä, että saatat haluta raportoida kautta PowerCLI.
PS51> $VM = Get-View -ViewType VirtualMachine -Filter @{"Name" = "myVMName"}PS51> $VM.Guest
ehkä haluat valita yhden ominaisuuden. Jos näin on, voit ajaa seuraavat rajata yksittäisen arvon.
PS51> $VM.Guest.GuestFullName
on monia Get-View
vaihtoehtoja kaikenlaisille VMware-olioille. Voit vapaasti tutkia kaikkia näitä vaihtoehtoja ja tarkastella tätä informatiivista artikkelia Vmwarelta, joka menee syvällisesti tähän tehokkaaseen cmdletiin!
VMware Code Capture – Learn from your Clicks
Jos haluat hyödyntää Powercliä, mutta et halua rakentaa koodia kirjoittamalla, Code Capture in vCenter on täällä sinua varten. Code Capture on uusi kehittäjätyökalu, joka toimii samalla tavalla kuin Active Directory-hallintakeskus. Let ’ s cover Code Capture tässä PowerCLI opetusohjelma.
Tämä työkalu tallentaa kaikki käyttöliittymässä tehdyt toiminnot. Se sitten muuntaa kaikki nämä toiminnot ja tarjoaa sinulle PowerCLI skriptejä.
oletuksena koodin kaappaus ei ole päällä. Jos haluat ottaa sen käyttöön, avaa vCenter-laite ja siirry kohtaan Menu – > Developer Center kuten alla.
kerran Kehittäjäkeskuksen välilehdessä, vaihda käyttöön koodinkaappausvaihtoehto.
kun otat Code Capturen käyttöön, näet sen jälkeen punaisen Tietuepainikkeen vCenter-otsikossasi. Kun käytössä, aina kun haluat tallentaa toiminnon ja muuttaa sen PowerCLI-ulostuloksi, sinun on tallennettava GUI-toiminto painamalla record-painiketta.
punainen tietuepainike ilmestyy vCenterin kirjautuneen käyttäjän osion viereen niin, että voit nyt nauhoita milloin vain.
osoittaaksesi koodin kaappauksen, käy läpi Uusi Virtual Machine creation wizard.
- Napsauta Record-painiketta aloittaaksesi äänityksen. Tämä aiheuttaa punaisen Record-painikkeen sykkimisen.
- napsauta hiiren kakkospainikkeella VMware-palvelinta ja Luo uusi virtuaalikone. Suorita tuloksena ohjatun Luo uusi virtuaalikone kaikki oletusarvot.
- kun virtuaalikone on luotu, klikkaa record-painiketta ja lopeta tallennus.
tuloksena oleva tuotos voi olla hieman ennakoitua monisanaisempi. Tuotos sisältää jopa kaikki toiminnot selata GUI ennen luomista VM. Kommenteissa pitäisi kuitenkin näkyä kohta, joka alkaa CreateVM_Task
. Tästä koodi alkaa luoda VM: ää.
alla on osa uuden ohjatun VM-prosessin createvm_task-tulosteesta GUI: n Koodikaappauksen kautta:
tämä ulostulo voi olla hieman ylivoimainen, mutta se altistaa sinut suoraan virtuaalikoneiden käytettävissä olevien MÄÄRITYSVAIHTOEHTOJEN määrälle. Riippuen omista tarpeistasi, olet nyt valtuudet tehdä muutoksia omia skriptejä ja muokata sydämesi sisältöä.
koodin Kaappausapuohjelma ei rajoitu vain VM: n luomiseen. Se voi myös rakentaa koodia verkostomuutoksille, pienille VM-muutoksille tai isäntäkonfiguraation muutoksille. Kun voit tarkastella GUI-toimintojen PowerCLI-tuotosta, voit käyttää pikakuvaketta matkallasi koodina käyttöön otettuun infrastruktuuriin.
PowerCLI Tutorial Summary
tässä artikkelissa kävit paljon läpi. Hyvää työtä! Toivon, että olet ymmärtänyt voiman, jonka PowerCLI tuo VMware-infrastruktuurin hallintaan.
Powerclissa on paljon cmdletejä monenlaisille tuotekannoille, mutta täällä on vain muutama. Muista pysyä kuulolla tämän blogin lisää artikkeleita tämä mahtava työkalu!
lisätietoja
- Powerclin lataaminen ja asentaminen
- viralliset VMware PowerCLI docs