Adam Automator

er ved at blive den allestedsnærværende grænseflade for hypervisor virtualiseringsadministratorer af Understøttet udstyr. Det er en stærk tilføjelse til dit værktøjssæt at lære at styre videoprogrammer. I denne tutorial vil du lære at gøre netop det.

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
Get-vmhost
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.

Get-VMHost | Format-List
Get-VMHost | Format-List

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-CSVcmdlet.

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:

PS51 Get-VMHost-Name Host | Get-VM
PS51> Get-Vmhost-Name | Get-VM
>Get-Vmhost-Name/Get-VM

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 til at indsamle host-oplysninger, kan du bruge disse cmdlet ‘ er fremadrettet. Den rapporteringsfunktionalitet, du har lige ved hånden, begynder at udvide!

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!

Get-Virtualkontakt
Get-Virtualkontakt

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ø.

Get-VirtualPortGroup
Get-VirtualPortGroup

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.

at få VM 'er med kun en bestemt portgruppe
at få VM’ er med kun en bestemt 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.

Finding VM 'er baseret på forskellige kriterier
Finding VM’ er baseret på forskellige kriterier

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 for at gennemgå rapporten.

CSV-fil af VM-information
CSV-fil af VM-information

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
forespørgsel om den virtuelle harddisk, der er knyttet til udvekslingen1 VMs
forespørgsel om oplysninger om den virtuelle harddisk, der er knyttet til udvekslingen1 VMs

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.

Get-Netværkadapter
Get-Netværkadapter

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 direkte i et Hyper – V-miljø, vil dette være en lignende oplevelse.

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.

Invoke-vmscript
Invoke-vmscript

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.

kører et script på en VM med Invoke-vmscript
kører et script på en VM med Invoke-VMScript

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.

Get-Vis
Get-Vis

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
brug af Get-visning med Filterparameteren
brug af Get-visning med Filterparameteren

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 , men hellere ikke vil bygge kode ved at skrive, er Code Capture i vCenter her for dig. Code Capture er et nyt udviklerværktøj, der fungerer på samme måde som Active Directory Administrative Center. Lad os dække kode Capture i denne Magtcli tutorial.

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.

Navigering til menupunktet Developer Center i vSphere
Navigering til menupunktet Developer Center i vSphere

Når du er på fanen Developer Center, skal du skifte aktiver kode capture mulighed.

aktivering af kodefangst
aktivering af kodefangst

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.

Code capture enabled indicator
code capture enabled indicator

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.

  1. Klik på optageknappen for at begynde optagelsen. Dette får den røde optageknap til at begynde at pulsere.
  2. 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.
  3. 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:

Developer Center generated code
Developer Center generated code

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 bringer til at styre VM-infrastruktur.

der er mange cmdlets i til en bred vifte af produktbaser, men vi dækkede kun nogle få her. Sørg for at holde øje med denne blog for flere artikler om dette fantastiske værktøj!

yderligere læsning

  • Sådan hentes og installeres Strømcli

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.