Я много занимаюсь разработкой программного обеспечения в качестве хобби, и для тестирования изменений, воспроизведения ошибок и т. д. мне часто требуется чистая среда Windows для запуска тестов.
Я могу запустить виртуальную машину, чтобы сделать это, но для этого обычно требуется найти ISO-образ Windows 8.1, создать новую виртуальную машину, загрузить ее, выполнить полную установку (пойти поискать ключ MSDN для моей «одноразовой виртуальной машины»), установить все мое программное обеспечение и т. д. Честно говоря, это слишком много работы для любых задач, кроме самых важных.
Я не могу просто сохранить чистый снимок своей виртуальной машины, потому что я обычно оставляю виртуальную машину неактивированной (именно так происходит по умолчанию, и это совет Microsoft по управлению одноразовыми тестовыми виртуальными машинами на ключах MSDN), а к тому времени, когда я снова ее использую, льготный период активации уже истекает.
Я думал о создании автоматизированного скрипта для создания новой виртуальной машины, включая все мое ключевое программное обеспечение, по требованию. Но большинство руководств по автоматизации развертывания, которые я нашел (использующих MDT или sysprep), похоже, нацелены на крупномасштабные развертывания. Я пробовал MDT, но, похоже, довольно сложно установить пользовательское программное обеспечение в образ (например, Virtualbox Guest Additions). Я также пробовал sysprep, но что бы я ни делал, мне все равно приходится вручную выполнять некоторые шаги установки.
Каков хороший способ настройки (и обслуживания) пользовательского установочного диска и скриптов, которые позволят мне достаточно быстро запустить автоматическое развертывание тестовых виртуальных машин?
(В настоящее время я использую VirtualBox в качестве программного обеспечения — у меня есть доступ к Hyper-V, и я подумываю попробовать его, но не уверен, поможет ли это. Проблемы, с которыми я столкнулся, больше связаны с автоматической установкой, чем с созданием виртуальной машины).
ОбновлятьГод спустя я так и не приблизился к решению. Я попробовал sysprep, но не смог найти способ поддерживать образ в актуальном состоянии с помощью Windows Update и т. д. (sysprep можно перезапускать только определенное количество раз, AIUI). Я попробовал MDT, но он слишком сложен для моих нужд.
Один альтернативный вариант, который я на самом деле не упомянул в исходном вопросе: я мог бы использовать один из моих ключей MSDN для активации моего базового образа, а затем клонировать по мере необходимости. Это работает? В частности, могу ли я клонировать копии моей базовой машины «по требованию», не делая мою активацию недействительной? Если я могу, то простое поддержание активированной базовой машины для каждой версии Windows, которую я хочу использовать, может быть лучшим подходом. Есть ли какие-то подводные камни в этом подходе, которые я не учел? Мне бы не хотелось в конечном итоге сделать мои ключи недействительными, попробовав это.
решение1
Вы можете обойти MDT (он слишком сложен для ваших нужд), используя какой-либо другой более простой PXE-сервер (например,Серва) затем используйте ImgMgr.exe для создания/обслуживания соответствующего автоматического скриптаUnattend.xml. (Я имею отношение к разработке Serva, но вы можете сделать это, используя какой-нибудь другой альтернативный PXE-сервер, если хотите)
решение2
Я думаю, что создание шаблона с помощью sysprep — это лучший вариант, но для создания полностью автоматической установки потребуется проделать некоторую дополнительную работу.
Вы можете использовать диспетчер образов системы Windows (частьКомплект для оценки и развертывания Windowsкоторый можно бесплатно загрузить с сайта Microsoft) для создания unattend.xml, который может содержать множество опций, которые вам обычно нужно вводить вручную после sysprep без использования настроенного unattend.xml. Вы даже можете автоматически присоединиться к домену Active Directory таким образом, если это необходимо
В unattend.xml вы также можете указать скрипт, который будет запущен в конце, который может обрабатывать все другие действия, которые не могут быть установлены в unattend.xml.
Опыт подсказывает мне, что дополнительный скрипт в конце почти всегда будет необходим. Я считаю PowerShell очень мощным инструментом для выполнения этой задачи
Примерно таким же образом я создал несколько неконтролируемых установок Windows, для завершения которых требуется всего несколько щелчков. Чтобы сделать образ sysprepped немного более гибким для будущих изменений, вы можете разделить скрипт в конце на две части
- Первая часть внутри образа sysprepped и вызывается unattend.xml, который устанавливает необходимый доступ к сети
- Вторая часть, которая загружается из сети и запускается первой частью. Эту вторую часть можно редактировать, изменять, расширять по мере необходимости, чтобы она соответствовала вашим меняющимся потребностям, без необходимости пересоздавать изображение.
решение3
Во времена XP был отличный инструмент для этого, который назывался nlite. Он был обновлен и преобразован в ntlite, который сделает эти slipstreamed iso для вас с минимальными усилиями.https://www.ntlite.com
решение4
Если вас не интересуют обновления или тестирование различных конфигураций приложений, вы можете просто обобщить с помощью Sysprep и создать снимок или клон с выключенной машины. Затем вы можете создать новый клон или восстановить этот снимок, когда захотите новую среду.
MDT, конечно, сложнее, но он позволяет вам развертывать современные среды для тестирования и поддерживать библиотеку приложений, которые вы можете выбрать во время развертывания. Например, если кто-то скажет мне, что у него ошибка с Acrobat Reader 9, Java 1.6u17 и Office 2007, я могу выбрать их из библиотеки и установить вместе с обновлениями Windows, когда я впервые войду в систему для тестирования.