Drugim, ważnym zestawem poleceń, do którego powraca się niemal codziennie, jest grupa ok. 30 cmdletów odnoszących się do maszyn wirtualnych i systemu gościa. Są to polecenia posiadające w nazwie VM (za wyjątkiem VMHost) oraz VMGuest.
Poleceniem podobnej wagi dla zarządzania maszynami wirtualnymi, jak Get-VMHost w odniesieniu dla hostów jest cmdlet Get-VM. Możemy zatem rozpocząć pracę z wirtualnymi maszynami.
Polecenie Get-VM bez podania parametrów wyświetla informacje o maszynach wirtualnych na serwerze vSphere.
By uruchomić konkretną maszynę wirtualną z poziomu PowerCLi wydajemy polecenie:
Get-VM -name <VirtualMachineName> | Start-VM
Wirtualna maszyna może zostać wyłączona za pomocą polecenia:
Shutdown-VMGuest <VirtualMachineName>
Do innych poleceń związanych z systemem gościa należą np.:
Restart-VMGuest
Suspend-VMGuest
Copy-VMGuestFile
Get-VMGuestNetworkInterface
Set-VMGuestNetworkInterface
Głodni wiedzy wyświetlamy pełną listę poleceń, aliasów i funkcji związanych z infrastrukturą VMware z poziomu PowerCLI, wywołując polecenie Get-Command lub Get-Command | More (parametr More odpowiada za podział długiej listy na strony).
By zakończyć połączenie z hostem wydajemy polecenie:
Disconnect-VIServer
Przykładowy skrypt PowerCLI
Scenariusz:
Wróćmy do środowiska opisanego we wprowadzeniu do artykułu. Na potrzeby zespołu testowego powstało 100 maszyn wirtualnych. Maszyny te muszą być dostępne codziennie ale tylko przez kilka godzin. By uniknąć sytuacji zamrożenia zasobów i generowania nadmiernego obciążenia centrum danych przez działające, ale nie mające znaczenia na ciągłość biznesową przedsiębiorstwa maszyny wirtualne posłużymy się skryptem zamykającym zbędne maszyny.
W pierwszej kolejności tworzymy plik tekstowy - maszyny-do-zamkniecia.txt - z listą maszyn testowych do zamknięcia. Nazwy maszyny wpisujemy jedna pod drugą:
testvm1
testvm2
testvm3
...
W pliku skryptu dozamkniecia.ps1 wpisujemy kod:
Bardzo duża liczba rozbudowanych komend i obiektów wymaga wielu godzin nauki i zacięcia programistycznego. Jednak już kilka poleceń znacząco usprawni pracę i pozwoli na pisanie własnych prostych, czy też analizę i dostosowanie do własnych potrzeb publicznie dostępnych, bardziej zaawansowanych skryptów.
Zaletą powłoki PowerShell'a i PowerCLI jest to, że zawierają dużo komend i często, wywołanie ich bez żadnych parametrów pozwala na wykonanie zadań administracyjnych.
Podsumowanie
W artykule przedstawiłem podstawowe elementy Windows PowerShell, wymagane do rozpoczęcia pracy z VMware vSphere PowerCLI. Przekonaliśmy się, że wpisanie już jednej komendy może zastąpić kilka, czy też kilkanaście kliknięć w vSphere Client. Zachęcam do poznawania kolejnych cmdletów i samodzielnej analizy skryptów ogólnodostępnych by móc działać zgodnie z zasadą:
If you have to repeat, write a script!
Autor: Piotr Masztafiak - z komputerami za pan brat od czasów C64, trener, konsultant, pasjonat szeroko pojętej wirtualizacji i rozwiązań Microsoft. Pomiędzy analizą logów Hyper-V, ESXi i XenServer zgłębia tajniki licencjonowania i zarządzania kapitałem oprogramowania. Posiada kilkanaście mniej lub bardziej technicznych certyfikatów w tym Microsoft MCITP SA|VA, Citrix CCA | CCSP, VMware VTSP | VSP.