воскресенье, 21 августа 2011 г.

Hyper-V: Managing labs with PowerShell

Последнее время я почти полностью перешел на Hyper-V, основной причиной стало то что свежая бесплатная версия ESXi не имеет возможностей для автоматизации работы с виртуальными машинами.
Для меня же возможность из скрипта запустить\выключить\откатить машину очень важна, т.к. это активно используется в тестах.
А вот у Hyper-V c автоматизацией все великолепно, используя вот эту библиотеку можно с легкостью писать скрипты на PowerShell

Вот например откат машины к последнему снэпшоту:

import-module hyperV
Get-VMSnapshot -VM LABNAME -Server HOSTNAME -newest | Restore-VMsnapshot -Force -Restart

Но столкнулся я с тем что при перемещении виртуальных машин между хостами, например с целью оптимизации, мне приходилось лезть в скрипты и менять там имя хоста.
Все мои виртуальные машины имеют уникальные имена и у меня родилась идея сделать так, чтобы скрипт сам находил нужный хост.

Вот что из этого вышло:

PARAM ($vmName)
import-module hyperV
$serverslist = ( 'hostname1','hostname2','hostname3')
$serverslist | % { Get-VM -Server $_} | ? {$_.ElementName.ToUpper() -eq $vmName.ToUpper()} | Get-VMSnapshot -newest | Restore-VMsnapshot -Force -Restart

Очень удобно. Рекомендую!

2 комментария:

Eduard Kibort комментирует...

PowerCLI?
http://www.vsphere.ru/2011/09/vmware-esxi-5-powercli-poster/

Eduard Kibort комментирует...

Он же для free ESXi не работает.