i denne tutorial vil du lære:
- det grundlæggende ved at oprette forbindelse til VM-infrastruktur med
- gør dig bekendt med cmdlets til at arbejde med VM-objekter
- Styrk dig selv med viden til at udforske
- Administrer VM-infrastruktur yderligere via
lad os komme til det!
Indholdsfortegnelse
hvad du skal Have og vide
før du kommer for langt i denne tutorial, er det altid vigtigt at sikre, at du og jeg begge er på samme side. For denne artikel vil jeg antage det:
- du har grundlæggende Magtshell erfaring. Du behøver ikke at være en Magtshell-ekspert, på nogen måde, men enhver Magtshell-fortrolighed, du har, vil tjene dig godt.
- du har en enhed til at oprette forbindelse til og teste
- du arbejder på en arbejdsstation
- du har allerede installeret og tilsluttet. Hvis ikke, tjek denne artikel om installation af Strømcli.
Jeg bruger Strømcli v 11.4.0. Jeg vil arbejde fra en Vinduer 10 arbejdsstation med vinduer Magtshell 5.1, men du er velkommen til at bruge Strømshell 6 i stedet, da der er funktionsparitet for denne tutorial.
Saml oplysninger om værter med
før du dykker ned i det virtuelle lag i vores vSphere-miljø, er det en god ide at gennemgå det fysiske lag. For at indsamle detaljerede oplysninger kaldet Get-VMHost
.
kør følgende cmdlet, mens du har forbindelse til din vCenter-server eller host.
PS51> Get-VMHost
da jeg er forbundet til et vCenter-serverapparat, der administrerer to separate værter, får jeg nogle grundlæggende oplysninger om værterne, der administreres. Get-VMHost
giver dig mulighed for at gennemgå udstyrsfunktionerne i dine virtualiseringsværter. Men som standardGet-VMHost
returnerer ikke alle de oplysninger, den kan.
Hvis du Piper Get-VMHost
cmdlet til Format-List
, får du konsoloutput for alle oplysninger om de givne værter.
alternativt kan du være pickier og kun vælge individuelle egenskaber på det vmhost-objekt, du arbejder med som:
PS51> Get-VMHost | format-list -Property State,LicenseKey,Version
udnyttelse af dette mere detaljerede output giver et endnu større overblik over det underliggende udstyr, der kører dine virtualiserede arbejdsbelastninger. Nogle af oplysningerne vil især være:
- licensvalideringsinfo
- CPU/Memory totals
- DNS hostname
efter gennemgang kan dette kompileres til en CSV-fil, måske ved hjælp af Export-CSV
cmdlet.
inspektion af VM ‘ er med Magtcli
lad os nu dykke ned i et andet emne i denne Magtcli-tutorial ved at gennemgå virtuelle værter gennemgår, hvilke virtuelle maskiner der i øjeblikket er til stede på en given vært.
Get-VM
kommandoen er en praktisk kommando, du kan bruge til at gennemgå VM-oplysninger.
PS51> Get-VMHost -Name <Host FQDN> | Get-VM
udgangen af denne cmdlet vil se noget ud som nedenfor:
outputtet ovenfor giver en komplet statusliste over aktuelt kørende VM ‘ er på en given vært. Hvis du skulle vælge ikke at angive en individuel vært, som jeg har gjort ovenfor, vil du modtage en tabel med oplysninger for hver efterfølgende vært og VM ‘ erne på hver.
Hvis du nogensinde løser et problem og har brug for at kende antallet af virtuelle maskiner på en given vært eller har brug for at bruge
inspektion af virtuelle kontakter med Magtcli
for dem af os, der har til opgave at konfigurere eller administrere de virtuelle netværk i en vCenter-klynge, er der et komplet udvalg af netværks-cmdlets til enhver brugssag. Hvis du ønsker at se de virtuelle kontakter, der er konfigureret i dit vSphere-miljø, bruger du følgende:
PS51> Get-VirtualSwitch
afhængigt af antallet af virtuelle netværk og virtuelle kontakter, du har, kan din resulterende liste være ret stor. I mit tilfælde, som du ser nedenfor, har jeg en enkelt Dkontakt, som er en distribueret virtuel kontakt.
i en Enterprise vSphere-implementering, hvor der er mange essi-værter i en klynge, forenkler omskiftere implementeringen af virtuelle kontakter og portgrupper på tværs af en lang række værter med samme konfiguration. Dette sparer på den manuelle arbejdskraft for at skabe identiske netværkskonfigurationer på hver vært manuelt, og er en fantastisk måde at skalere din klynge!
find VM ‘er knyttet til et virtuelt netværk med Strømkli
mens du forsøger at indsnævre omfanget af et problem, kan du undre dig over, hvilke VM’ er der er forbundet til hvilke netværk. For at finde ud af det kan du bruge kommandoen Get-VirtualPortGroup
. Lad os lære om denne cmdlet i denne tutorial.
en portgruppe er i det væsentlige et virtuelt netværk. For at vise alle portgrupper skal du køre Get-VirtualPortGroup
uden nogen parametre. Du skal derefter se en liste over alle virtuelle portgrupper, der findes i dit vSphere-miljø.
for at finde alle de VM ‘ er inde i den portgruppe (dportgroup i min portgruppe) > sag), kan du køre nedenstående script. Sørg for at erstatte værdien DPortGroup med navnet på din virtuelle Portgruppe.
PS51> Get-VM | Where-Object { ($PSItem | Get-NetworkAdapter | where {$_.networkname -match "DPortgroup"})}
i denne one-liner får vi en liste over alle virtuelle maskiner, der findes i dette vCenter-apparat, og filtrerer derefter medWhere-Object
cmdlet for kun at få de VM ‘ er med et netværksnavn, der matcher vores Portgruppe.
med denne udgang kan du definere, hvilke maskiner er tilsluttet og konfigureret for hvert netværk.
Når du bliver bedt om at finde og analysere, hvilke VM ‘ er der er forbundet til et bestemt netværk, får du nu beføjelse til at levere en løsning til rapportering af dette spørgsmål.
Hent os-versionsoplysninger om dine VM ‘ er med
hovedparten af det administrative arbejde inde i programmet udføres på virtuel maskine niveau. Du vil sandsynligvis modtage utallige anmodninger om opgaver som at hente en liste over alle harddiskstørrelser på VM ‘ er eller få gæst OS-versioner til alle dine servere blandt andre.
disse opgaver er besværlige i skala. Vi er i stand til at strømline disse med et par vigtige cmdlets at tilføje til dit arsenal, så lad os dække dem i denne tutorial.
Du er måske blevet spurgt på et tidspunkt, “hvor mange Ubuntu-servere har vi i vores VM-klynge?”. Du har måske brugt alt for meget tid på at klikke rundt i vCenter på udkig efter et svar. Vi kan strømline denne proces ved at se på VM-objekterne i vCenter og anvende noget Magtshell-magi på output.
se på følgende script, der samler VM-oplysninger. Dette uddrag bruger kommandoen Get-View
, som vi vil gå ind på lidt senere, men indtil videre skal du vide, at det er en avanceret måde at hente egenskaber for VMV-objekter på. I dette tilfælde samler vi indlejrede egenskaber, der lettest hentes i denne metode.
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}}
ovenstående kode henter en liste over virtuelle maskiner via Strømcli Get-VM
cmdlet, sortering af listen med Strømskallen Sort-Object
cmdlet og henter derefter nogle af objektegenskaberne ved hjælp af Strømcli Get-View
cmdlet.
at køre dette i mit miljø giver resultatet nedenfor. Du kan se navnet på VM i vCenter, Configured OS
hvilket er, hvordan VM ‘ s virtuelle udstyr er indstillet til at fortolke gæstens operativsystem, og det faktiske Running OS
, der repræsenterer det faktiske operativsystem.
med VMs-replikanten og Scriptrunner er slukket i VMs-replikanten og Scriptrunner. div cluster, vil du ikke kunne seRunning OS
værdi for dem. OS ‘ et er samlet af tjenesten VMV-værktøjer. Hvis den ikke er tilgængelig, kan vi ikke trække oplysninger om operativsystemet.
oprettelse af CSV-rapporter med
er en gæstetjeneste til både vinduer og virtuelle computere, der giver hypervisoren yderligere information og administrative muligheder. Oftest vil dette give ren-nedlukning, operativsystem oplysninger, og højere opløsning konsol visning af VM ‘ erne.
en bekvem måde at rapportere om og give disse oplysninger ville være at rør ovenstående script ind iExport-CSV
cmdlet. Export-Csv
opretter en CSV-fil med de samme oplysninger, du ser i konsollen.
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
Når du har kørt ovenstående kode, skal du derefter kunne åbne CSV-filen med
inspektion af virtuelle harddiske med Strømcli
kommandoenGet-Harddisk
er en anden nyttig kommando at vide. Get-HardDisk
cmdlet giver dig mulighed for at inspicere oplysninger om virtuelle harddiske, der er knyttet til VM ‘ er.
for eksempel for at forespørge oplysninger om den virtuelle harddisk, der er knyttet til udvekslingen1 VM ‘ er, kan du køre følgende:
PS51> Get-VM -Name exchange1 | Get-HardDisk | Format-List
nogle af disse oplysninger kan være overflødige, såsom kapaciteten i KB vs. GB. Men der er værdi i at kende StorageFormat
(tynde/tykke provisioning typer). Og at kende VMDK-filnavnet.hvis du f.eks. ser et fælles problem, og alle VM-harddiske befinder sig på samme datastore-lydstyrke, kan denne viden fremskynde fejlfinding.
inspektion af virtuelle netværkskort med Strømcli
ud over at gennemgå harddiskoplysninger om dine virtuelle maskiner kan du også kontrollere de virtuelle netværkskort. For at kontrollere disse egenskaber for en enkelt VM kan du bruge Get-NetworkAdpter
cmdlet.
PS51> Get-NetworkAdapter -VM myVM
mens du tidligere havde jaget i denne port for alle VM ‘ er, der bor i det samme netværk, vil du kun se adaptere, der er tilsluttet en bestemt VM.
Dette er nyttigt, hvis fejlfinding af VM ‘ er, der har flere netværkskort tilsluttet. Du kan hurtigt og hurtigt afgøre, om disse adaptere er forbundet til de rigtige netværk.
kører Strømshell-Scripts i VM ‘ er med Invoke-vmscript
Ved hjælp af Invoke-VMScript
kan du også køre Strømshell-kode direkte inde i VM; ingen netværksforbindelse nødvendig. Hvis du nogensinde har brugt
I stedet for at oprette en Remoting session eller brugeInvoke-Command
cmdlet over netværket, kanInvoke-VMScript
cmdlet sende kommandoer direkte til VM uden normal tilslutning.
som et eksempel vil du måske gerne udføre en simpel katalogliste på en VM kaldet udveksling1. For at gøre det vil du passere dir C:\
som værdien for ScriptText
parameter som vist nedenfor.
PS51> Invoke-VMScript -VM exchange1 -ScriptText "dir C:\"
resultaterne er som om du havde kørt kommandoerne fra VM-konsollen selv. Invoke-VMScript
derefter relæer alle output kommandoen, der blev kørt på VM returnerer.
selvom dette er et grundlæggende eksempel, kan du blive så kompliceret, som du gerne vil. Denne cmdlet giver dig mulighed for at angive batch -, Strømshell-eller Bash-typer inden for parameteren ScriptText
.
Du kan også blive mere avanceret. Nedenfor kan du se, hvordan du bruger Invoke-VMScript
til at køre Strømshellkode ved hjælp af en separat $script
variabel til ScriptText
parameterindgang. Dette giver os mulighed for at oprette mere tilpasset scriptinput, som VM kan behandle.
PS51> $script = 'Get-Disk'$guestCredential = Get-CredentialInvoke-VMScript -ScriptText $script -VM VM -GuestCredential $guestCredential -ScriptType Powershell
ScriptText
parameterværdi skal en streng. Derfor har variablen$script
de enkelte ydre citater som en nødvendighed.
du har måske også bemærket brugen af parameterenGuestCredential
. Denne parameter bruges til at godkende i VM-operativsystemet. Denne parameter er især nyttig, hvis du vil køre scriptet som en anden konto.
dit script i aktion skal resultere i output svarende til nedenfor.
resultatet af dette script giver os VM ‘ s diskinformation. Baseret på det skal du vide, at det er en fjern VM på grund af VMware Virtual Disk
som det venlige navn på drevet.
kom avanceret med Get-Vis
du har måske set nogle af de grundlæggende cmdlets returnere en ejendom kaldetExtensionData
. Du kan finde denne egenskab ved at føre mange Kraftcli cmdlets til Kraftskallen Get-Member
cmdlet. Hvis du spekulerede på, hvad det var, nu er din chance for at finde ud af.
det næste trin i denne satsning er at forståGet-View
cmdlet. VM udnytter mange forskellige forespørgsler til VM for at give den smukke og enkle output af Get-VM
. Men der er meget under hætten, der kun er tilgængelig ved hjælp af Get-View
cmdlet.
Du vil sandsynligvis se mange scripts ved hjælp af denne cmdlet. Det ville være nødvendigt at bruge lidt tid på at vænne sig til at se denne cmdlet i aktion. For at gøre dig bekendt skal du bruge Get-View
cmdlet for at få nogle virtuelle maskinoplysninger (udveksling1 i dette eksempel).
Du kan seFilter
valgmulighederne for denne cmdlet kræver brug af en Strømshell hashtable og ikke individuelle strengværdier. Vær opmærksom, når du bygger dine egne unikke scripts!
PS51> Get-View -ViewType VirtualMachine -Filter @{"Name" = "myVMName"}
resultatet af kommandoen ovenfor er en masse indlejrede konfigurationsoplysninger og metodemuligheder til at tage handlinger mod VM eller få objektegenskaber.
Hvis du bruger det samme script ovenfor og sender output til en variabel, kan du inspicere de indlejrede indstillinger med dot notation. Her kan du se og hente alle de yderligere oplysninger om gæstens operativsystem, som du måske vil rapportere om via
PS51> $VM = Get-View -ViewType VirtualMachine -Filter @{"Name" = "myVMName"}PS51> $VM.Guest
måske vil du vælge en enkelt ejendom. I så fald kan du køre følgende for at indsnævre en individuel værdi.
PS51> $VM.Guest.GuestFullName
der er mangeGet-View
indstillinger for alle typer VM-objekter. Du er velkommen til at udforske alle disse muligheder og gennemgå denne informative artikel fra VM, der går i dybden på denne kraftfulde cmdlet!
Lær af dine Klik
Hvis du gerne vil drage fordel af
dette værktøj registrerer alle handlinger, du udfører i GUI ‘ en. Det forvandler derefter alle disse handlinger og giver dig Strømcli scripts.
Som standard er Kodefangst ikke slået til. For at tænde det skal du åbne dit vCenter –apparat og navigere til Menu – > Developer Center som vist nedenfor.
Når du er på fanen Developer Center, skal du skifte aktiver kode capture mulighed.
når du aktiverer Kodefangst, vil du derefter se en rød optageknap i din vCenter-overskrift. Når det er aktiveret, skal du optage GUI-aktiviteten ved at trykke på optageknappen, når du vil have en handling optaget og omdannet til Strømcli-output.
den røde optageknap vises ved siden af din loggede brugerafsnit i vCenter, så du nu kan få adgang til den optag til enhver tid.
for at demonstrere Kodefangst skal du gennemgå den nye guiden til oprettelse af virtuel maskine.
- Klik på optageknappen for at begynde optagelsen. Dette får den røde optageknap til at begynde at pulsere.
- Højreklik på din vært, og opret en ny virtuel maskine. Kør gennem den resulterende guide og opret en ny virtuel maskine med alle standardværdier.
- når den virtuelle maskine er oprettet, skal du klikke på optageknappen og stoppe din optagelse.
det resulterende output kan være lidt mere detaljeret end forventet. Udgangen inkluderer endda alle handlinger med at gennemse GUI ‘ en, før du opretter VM. Men du skal se et afsnit betegnet i kommentarerne, der starter med CreateVM_Task
. Det er her koden begynder at oprette en VM.
nedenfor er en del af CreateVM_Task output af den nye VM guiden proces i GUI via kode Capture:
denne udgang kan være lidt overvældende, men den udsætter dig direkte for antallet af konfigurationsindstillinger, der er tilgængelige for dine virtuelle maskiner. Afhængigt af dine egne behov, er du nu bemyndiget til at foretage justeringer i dine egne scripts og tilpasse til dit hjerte indhold.
Kodeoptagelsesværktøjet er ikke begrænset kun til VM-oprettelse. Det kan også opbygge kode til netværksændringer, små VM-ændringer eller værtskonfigurationsændringer. Ved at være i stand til at gennemgå Strømcli output af GUI handlinger kan du tage en genvej på din rejse til infrastruktur indsat som kode.
Magercli Tutorial Resume
i denne artikel dækkede du meget jord. Flot arbejde! Jeg håber, at du har indset den magt, som
der er mange cmdlets i
yderligere læsning
- Sådan hentes og installeres Strømcli