The VI Object Model

To tak btw, zeby byla jasnosc jak to wyglada, naprawde czytelnie przedstawione
http://www.vmware.com/vmtn/technology/developer/webinars/vi-object-model_webcast_2007-01-17.pdf

Advertisements

Szkolenie VMWare + POWERCLI

Jesli ktos jest zainteresowany szkoleniem VMWare o automatyzacji z powercli to zerknijcie na post:
http://communities.vmware.com/message/1750895#1750895
Potrzebujemy jeszcze 3 ochotnikow aby ruszyl kurs, jest okazja ! 18% rabatu !!!, dajcie znac znajomym, moze ktos sie skusi. Z gory wielkie dzielki

Laczymy sie do wielu esx’ow naraz podczas 1 sesji powercli / sposob nr2

Mmmm, w sumie ten sposob ktory wczesniej podalem dziala, ale z tego co zauwazylem z racji ze vmware w nowej wersji wprowadzil ulatwienia jest juz malo uzywany.
Wcale nie musimy budowac tablicy z hostami na ktorych bedziemy chcieli wykonywac nasze cmdlety. Vmware daje nam mozliwosc pracy w trybie multi.
W trybie single wykonywana komenda bedzie uruchamiana wobec ostatniego serwera do ktorego sie podlaczymy, w multi natomiast na kazdym.
Set-PowerCLIConfiguration -DefaultVIServerMode Multiple -Confirm:$false

-> Pisze z -Confirm bo nie chcemy zeby podczas wykonywania skryptow wyskakiwal nam popup.
Po tej komendzie polaczmy sie na 2 esxy:
connect-viserver 10.10.10.1
connect-viserver 10.10.10.2

W rezultacie otrzymamy:
echo $DefaultVIServers

Name Port User
---- ---- ----
10.10.10.1 443 root
10.10.10.2 443 root

Zuwazcie ze gdy mamy tryb single(by default), zmienna $DefaultVIServers pokazuje tylko 1 aktywny host.

Not happy . | Happy ;)

Wieczor spedze na poprawianiu wygladu tego bloga gdyz mam wrazenie ze czytanie go moze sprawiac duzo problemow ze wzgledu na formatowanie tekstu…

Update: Znalazlem w koncu lepszy dla oka motyw graficzny i teraz wszystko ladnie sie formatuje.

Laczymy sie do VC / ESX/ESXi uzywajac credentials z pliku

Zamiast za kazdym razem utozsamiac sie podajac login/pass , mozemy wykorzystac mechanizm credentials ktore jest do naszej dyspozycji.
Connect-VIserver posiada przelacznik -credentials.
Zgodnie z opisem:
http://www.vmware.com/support/developer/windowstoolkit/wintk40u1/html/Connect-VIServer.html
“Specify a PSCredential object that contains credentials for authenticating with the server”
Zatem musimy najpierw stworzyc obiekt PSCredential:
$mycred=get-credential
write-host “Please type file location to store credential”
$file=read-host
$mycred.Password | ConvertFrom-SecureString | Set-content $file
write-host “Credential file was created”

-> Od teraz dysponujemy plikiem z haslem zapisanym w miejscu podanym w $file.

Mozemy zatem napisac funkcje ktora nas autoryzuje :
function authorize
{
if(test-path -PathType leaf $file)
{
write-host “Using authorization file “$file
$password = Get-Content $file | ConvertTo-SecureString
$cred = New-Object System.Management.Automation.PsCredential(“USER”,$password)
return $cred
}
else
{
write-host “No authorization file found”`n”Terminating.”
break
}
}

Potem mozemy w skryptach uzywac juz polaczenie wywolywanego:
$credential=authorize()
connect-viserver A.B.C.D -credential $credential

Laczymy sie do wielu esx’ow naraz podczas 1 sesji powercli

function polacz
{
$serwery_esx = @()
$serwery_esx += connect-viserver A.B.C.D -credential $credential
$serwery_esx += connect-viserver A.B.C.D -credential $credential
}

get-vm -server $vcs | new-snapshot -> Wykona snapshoty na wszystkich VM w obrebie hostow ktore podalismy w tablicy

Jak skopiowac plik z wirtualnej maszyny uzywajac powercli ?

Mozemy w prosty sposob wyjmowac oraz wkladac pliki do wirtualnej maszyny.
W przypadku VM z systemem operacyjnym linux :
copy-vmguestfile -Source '/root/install.log' -Destination c:\passwd.txt -VM $vm -GuestToLocal -GuestUser root -GuestPassword [HASLO]

Wieczorkiem postaram sie jeszcze dodac przyklad na wrzucenie pliku do maszyny wirtualnej.
Moze wyglada to tylko niewinnie, ale pomyslcie jak szybko mozemy sciagnac z 100 maszyn plik konfiguracji jakiejs wadliwie dzialajacej uslugil, po czym poprawic blad i wyslac plik ponownie, lub np. jakis mini-offsite backup ktory nie wymaga wiecej niz 15 minut posiedzenia nad skryptem.