Как я могу автоматизировать создание виртуальной машины с необходимым программным обеспечением?
Моя идея состоит в том, что у меня есть веб-страница, которая взаимодействует с сервером виртуальной машины (ESX или Hyper-V), я выбираю, какую ОС я хочу и какое программное обеспечение я хочу установить на машине. Веб-страница отправляет необходимые запросы, которые, в свою очередь, собирают машину.
Это сильно зависит от гостевой ОС и установленного на ней программного обеспечения. Если набор программного обеспечения известен заранее, вы можете просто создать шаблоны виртуальных машин и развернуть виртуальные машины из шаблонов по запросу.
Для получения подробного списка необходимого программного обеспечения гостевая ОС начнет играть роль
В любом случае, это непростая задача в небольшой домашней среде, хотя создание базовых шаблонов в libvirt должно быть достаточно простым.
Начните здесь для Microsoft Hyper-V - http://technet.microsoft.com/en-us/library/bb740810.aspx
Это выполнимо, но это огромная задача с точки зрения планирования и политики.
Из: http://technet.microsoft.com/en-us/library/bb740785.aspx
Самообслуживание виртуальной машины позволяет администратору Virtual Machine Manager (VMM) предоставлять пользователям разрешение на создание и управление собственными виртуальными машинами в контролируемой среде на ограниченной группе хостов виртуальных машин. Администратор Virtual Machine Manager настраивает политики самообслуживания, которые определяют объем действий пользователей на их собственных виртуальных машинах.
Ваша идея верна, но черт кроется в деталях. Если вам нужно надежное, масштабируемое и удобное решение, это потребует больших усилий. Для хобби-проекта будет достаточно скриптов.
OpenNebula поддерживает ESXi (и Hyper-V, но он не настолько готов к производству) и включает функцию контекстуализации, которая позволяет настраивать виртуальную машину во время первой загрузки с использованием набора скриптов, размещенных на автоматически созданном ISO-образе компакт-диска.
Взгляни на http://opennebula.org/documentation:rel3.0:cong#generic_contextualization
В качестве реального примера я использую эту функцию для настройки и развертывания виртуализированных стеков LAMP с использованием уникального образа шаблона Ubuntu LTS.
Можно было бы подумать, что это возможно с помощью комбинации PowerCLI для стороны VMWare, а затем назначений групповой политики. Вы можете использовать веб-страницу для создания XML или CSV для создания виртуальной машины с помощью командлета New-VM. Назначение программного обеспечения может быть создано с помощью развертывания программного обеспечения GPO. Этим также можно управлять с помощью модулей для AD в Powershell 2.0, но, если я правильно помню, потребуется DC 2008 R2.
Как заметил Дэн, это будет довольно объемная работа, но если это обычное явление, то оно того стоит. Было бы определенно проще, если бы были шаблоны для различных требуемых машин, которые могли бы облегчить начальную генерацию.
Кто-то уже делал это: easyvmx