PowerCLI dla VMware vSphere to niezwykle potężne narzędzie oparte na Microsoft PowerShell. PowerCLI pozwala centralnie zarządzać serwerami ESXi i vCenter z poziomu wiersza poleceń i pozwala wykonywać do 98% rutynowych zadań zarządzania infrastrukturą wirtualną bez GUI. Za pomocą narzędzia PowerCLI można tworzyć skrypty, monitorować stan maszyn wirtualnych, magazynów, sieci, użytkowników i automatyzować wiele procesów.
PowerCLI zawiera ponad 1900 cmdletów do zarządzania chmurą VMware i infrastrukturą wirtualną: vSphere, vSAN, vRealize Operations Manager, vCloud Director, Site Recovery Manager, Horizon i vCloud Air. Podczas wykonywania poleceń cmdlet interfejs API jest wywoływany na określonym serwerze ESXi lub serwerze vCenter i wykonuje operacje na tym zdalnym serwerze.
PowerCLI można zainstalować na komputerach z systemem Microsoft Windows 7 / Windows Server 2008 R2 i nowszym, Ubuntu.
Możesz pobrać najnowszą wersję VMware PowerCLI 6.5 ze strony internetowej VMWare (wymagana rejestracja).
Instalacja VMWare PowerCLI nie wymaga żadnych specjalnych komentarzy — wystarczy kliknąć przycisk Dalej.
Jeśli nie chcesz instalować grubego klienta PowerCLI, możesz zainstalować moduł VMware.PowerCLI z Internetu za pomocą następującego polecenia PowerShell:
Install-Module -Name VMware.PowerCLI -AllowClobber -Force
Aby uruchomić konsolę PowerCLI, po prostu uruchom skrót VMWare VSphere PowerCLI jako administrator.
Aby wyświetlić listę dostępnych poleceń w konsoli PowerCLI, wpisz:
Get – Command
Możesz uzyskać listę poleceń dla maszyn wirtualnych w następujący sposób:
Get-Command * vm
Aby uzyskać pomoc dotyczącą przypisania i pokazywania rozwiązań dotyczących używania tego lub innego polecenia cmdlet PowerCLI, możesz użyć polecenia help (Get-Help), na przykład:
help Connect – VIServer –Full help Connect – VIServer –Examples
Aby rozpocząć zarządzanie infrastrukturą wirtualną, musisz połączyć się z serwerem vCenter Server lub określonym serwerem ESXi. Aby to zrobić, użyj polecenia Connect-VIServer. Polecenie połączenia może wyglądać następująco:
Connect-VIServer vsphere6 -User corp \ admin -Password VMware1!
Aby uzyskać listę maszyn wirtualnych zarejestrowanych na serwerze, uruchom następujące polecenie:
Uzyskaj – VM
Możesz wyświetlić tylko maszyny wirtualne z napędem:
Get-VM | Gdzie {$ _. Powerstate -eq „PoweredOn”} | Wybierz Nazwa, VMHost, NumCPU, MemoryMB | ft
Lista maszyn wirtualnych może być eksportowana do pliku CSV, XML lub HTML za pomocą pipeline i poleceń cmdlet Export-Csv, ConvertTo-Xml, ConvertTo-Html.
Uwaga. PowerCLI działa w trybie tylko do odczytu z ESXi Free Hypervisor (darmowa licencja). Oznacza to, że możesz go użyć do wyświetlenia niektórych właściwości i wartości, ale nie możesz ich zmienić.
Możesz wyświetlić migawki dla konkretnej maszyny wirtualnej w następujący sposób:
Get-VM | Pobierz migawkę | Lista formatów
Aby wykonać VMotion i przenieść działającą maszynę wirtualną na inny host, użyj polecenia Move-VM. Na przykład chcesz przenieść wszystkie maszyny wirtualne z hosta esxi1 do esxi2:
Get-VMHost esxi1 | Get-Vm | Move-VM –Destination (Get-VMHost esxi2)
Aby utworzyć nową maszynę wirtualną, użyj polecenia cmdlet New-VM:
New-VM –Name VMname1 -VMHost esxi1 –ResourcePool Production –DiskGB 20 –DiskStorageFormat Thin –Datastore MSAVMFS1
Możesz używać poleceń cmdlet PowerCLI do interakcji z systemem operacyjnym gościa, ale na nim musi być zainstalowany VMware Tools. Możesz zaktualizować Narzędzia VMware w następujący sposób:
Get-VMGuest VMname1 | Narzędzia aktualizacji
Aby skopiować określony plik na wszystkie maszyny wirtualne, uruchom następujące polecenie:
Get-VM | Copy-VMGuestFile -Source c: \ ps \ script1.vbs -Destination c: \ ps \ -GuestToLocal -HostUser root -HostPassword P @ ssw0rd -GuestUser administrator -GuestPassword P @ ssw0rd1
Za pomocą polecenia cmdlet Invoke-VMS można uruchomić skrypt w systemie-gościu:
$ script = '"% programfiles% \ Common Files \ Microsoft Shared \ MSInfo \ msinfo32.exe" / report "% tmp% \ inforeport" Invoke-VMScript -ScriptText $ script -VM VMname1 -HostCredential $ hostCredential -GuestCredential $ guestCredential -ScriptType Bat