Skip Ribbon Commands
Skip to main content
 

 Ryhmän

 
 Kuvaus
 Keskustelut
 IT-Wikit
 Dokumentit
 Linkit
 Jäsenet
 Kuvat
(More Links...)
ITpro.fi > Asiantuntijaryhmät > Ohjelmistokehitys > Posts > Virtuaalikoneiden skriptaaminen Hyper-V -ympäristössä
marraskuu 20
Virtuaalikoneiden skriptaaminen Hyper-V -ympäristössä

Ohjelmistojen testaaminen on eräs hyödyllisimmistä käyttökohteista virtuaalikoneille. Vaikka virtuaalikoneiden käsittely on huomattavat fyysisen raudan kanssa pelaamista helpompaa, vaatii virtuaalikoneiden kanssa toimiminen silti manuaalista työtä.

Jos käytössä on Windows Server 2008:n Hyper-V -virtualisointi, voidaan virtuaalikoneiden toimintoja automatisoida kätevästi PowerShell-ympäristöstä. Tämä vaatii palvelimelle myös System Center Virtual Machine Managerin (SCVMM) asennusta, mutta vähänkään laajemmissa ympäristöissä System Center on todennäköisesti jo muutenkin käytössä.

Testasimme viimeisellä bootcampillä Lehmonkärjessä lokakuussa, miten PowerShell-skriptein voisi tehostaa ja automatisoida ohjelmistotestausta. Samalle palvelimelle oli asennettu Hyper-V sekä Virtual Machine Manager. PowerShell-komentoja voidaan taas ajaa yksinkertaisimmin siten, että valitaan Start-valikosta Virtual Machine Managerin oma PowerShell-pikakuvake, jolloin tarvittavat komennot ovat heti käytössä. (Tavallisesta PowerShell-kehotteesta komentoja ei löydy ennen kuin VMM:n snapin-laajennuksen rekisteröi itse käsin.)

Tyypillinen tilanne ohjelmistotestauksessa on, että tietty virtuaalikone halutaan palauttaa perustilaan, sitten asentaa ko. virtuaalikoneeseen testattava ohjelmisto, ajaa testit, ja lopuksi kerätä tulokset. Tässä skripti, jolla MyApplication-niminen sovellus voitaisiin testata:

$VM = Get-VM -VMMServer hvsrv02 -Name "Windows XP Pro"
$restore_to_checkpoint = Get-VMCheckpoint -vm $vm | where { $_.Name -eq "Testing Base" }
Restore-VMCheckpoint -VMCheckpoint $restore_to_checkpoint
copy C:\ApplicationCode\MyApplication\Setup.msi \\10.11.12.143\ApplicationTest
& 'C:\Program Files (x86)\psexec.exe' \\10.11.12.143 msiexec /i /passive C:\ApplicationTest\Setup.msi
& 'C:\Program Files (x86)\psexec.exe' \\10.11.12.143 C:\ApplicationTest\MyApplication.exe -aaa123 -bbb234
copy \\10.11.12.143\ApplicationTest\Run.log C:\Users\TeppoTestaaja\Desktop\Run.log

Skriptissä haetaan ensin Get-VM -komennolla palvelimelta ”hvsrv02” virtuaalikonetta, jonka nimi on ”Windows XP Pro”. Tämän jälkeen käytetään Get-VMCheckpoint -komentoa palauttamaan kaikki kyseisen virtuaalikoneen tilannekuvat (VMM:n termein checkpoint, yleisesti snapshot), ja etsitään sitten where-komennolla tilannekuvaa nimeltä ”Testing Base”.

Kun haluttu tilannekuva on löytynyt, palautetaan virtuaalikone tämän tilannekuvan mukaiseen tilaan Restore-VMCheckpoint -komennolla. Tyypillisesti tällainen perustila tarkoittaa käyttöjärjestelmän puhdasta tilaa ennen testattavan sovelluksen asennusta.

Seuraavat rivit ovatkin sitten testattavan ohjelman asennusta. Olettaen että virtuaalikone löytyy IP-osoitteesta 10.11.12.143, kopioidaan sovelluksen MSI-paketti sopivaan verkkojakoon, ja sitten ajetaan SysInternalsin PSExec-apuohjemalla ensin läpi unattended-asennus, ja sitten itse sovellus. Olettaen, että sovellus suorituksensa aikana kirjoittaa lokitiedostoon Run.log, otetaan tämä loki lopuksi talteen takaisin vaikkapa testaajan työpöydälle.

Netistä löytyy varsin huonosti dokumentaatiota näistä komennoista, mutta PowerShellin help-komennolla kustakin komennosta saa hyvin lisätietoja. Lisäksi saatavilla on System Center Virtual Machine Manager Scripting Guide.

Ei siis muuta kun testausta automatisoimaan!

Comments

There are no comments for this post.
 

 Ajankohtaista