Назад | Перейти на главную страницу

Как автоматически создать виртуальную машину Hyper-V и установить приложение с помощью PowerShell

Я разрабатываю инфраструктуру тестирования для приложения WPF. Мне нужна система, которая будет создавать виртуальную машину при появлении нового MSI в папке и устанавливать MSI на вновь созданную виртуальную машину. Я использую Hyper-V и PowerShell. Просмотр папки и запуск - это все, что я могу сделать, но я застрял именно в аспекте Hyper-V. У меня есть виртуальная машина, которую я хочу использовать в качестве базы, но я не знаю, что делать дальше.

Лучше ли экспортировать виртуальную машину, а затем импортировать / копировать виртуальную машину с помощью сценария PS? Лучше "скопировать" виртуальную машину напрямую? Должны ли контрольные точки вступать в игру? Есть ли лучший подход?

Если у кого-то есть ссылка на ресурс, в котором рассказывается об автоматической настройке виртуальной машины / приложения с помощью PS, это было бы здорово. Я разработчик, поэтому не знаю, куда пойти с подобными вещами.

Спасибо, Эрик

У меня есть виртуальная машина, которую я хочу использовать в качестве базы, но я не знаю, что делать дальше.

"Правильный ответ" - использовать Шаблоны виртуальных машин в SCCVM хотя, судя по тону вашего вопроса, я предполагаю, что у вас нет SCCVM.

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

Предполагая, что вы уже создали резервную копию своего основного образа (как до, так и после sysprep), вы можете сделать что-то простое, например:

Copy-Item C:\Hyper-V\MasterImage\MasterImage_CDrive.vhdx C:\Hyper-V\$SpawnVM\$SpawnVM.vhdx
New-VM $SpawnVM -Path "C:\Hyper-V"
Add-VMDisk -VM $SpawnVM -ControllerId 0 -Lun 0 -Path "C:\Hyper-V\$SpawnVM\$SpawnVM.vhdx"


Этот фрагмент PowerShell должен скопировать виртуальный жесткий диск из вашего главного образа, создать новую виртуальную машину и затем присоединить ее. Возможно, вы хотите сделать гораздо больше, поэтому я хочу указать вам на Командлеты Hyper-V в Windows PowerShell что чертовски полнофункционально в Windows 8.1 / Windows Server 2012 R2. Если позже у вас возникнут конкретные вопросы, не стесняйтесь возвращать их.


Должны ли контрольные точки вступать в игру?

Может быть. Вы можете создать новую виртуальную машину из существующих контрольных точек, экспортировав виртуальную машину из контрольной точки (I верить это объединяет разностный диск и родительский диск, поэтому вы не экономите время). Контрольно-пропускные пункты действительно должны быть зарезервированы для временный момент времени восстанавливает:

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



Я разработчик и поэтому не знаю, куда пойти с такими вещами.

Пожалуйста, не поймите это неправильно, но если вы делаете что-то серьезное в этом процессе, подумайте о том, чтобы поговорить со своей командой системного администрирования или нанять кого-то на месте или подрядчика, который имеет соответствующий опыт. По каждой из этих тем можно написать небольшую книгу. Возможно, вам будет хорошо взломать какой-нибудь PowerShell для автоматизации некоторых разработок или тестирования виртуальных машин, но это не похоже на хороший путь для начала серьезных производственных дел. Просто дружеское предостережение ... убедитесь, что ваш DevOps - это не только Dev и Ops.

Надеюсь, это поможет вам начать. Если вы делаете это с какой-либо регулярностью и объемами в производственной среде, вам следует System Center 2012 R2 Диспетчер виртуальных машин и System Center 2012 R2 Orchestrator серьезный взгляд.