Автоматическое создание виртуальных машин Linux

Автоматическое создание виртуальных машин Linux придет на помощь как нельзя кстати в задачах быстрого развертывания тестовой инфраструктуры.

В этой статье я хочу поделиться с вами небольшим скриптом на Powershell для создания виртуальной машины. Он особенно понравится тем, кому уже надоели эти скучные виндовые обои бездумные клики Далее-Далее-Далее-Готово при работе в визарде создания новых ВМ.


Если вам интересна тематика Windows Server, рекомендую обратиться к тегу  Windows Server  на моем блоге.


Автоматическое создание виртуальных машин Linux

Напоминаю, что скрипт вы используете на свой страх и риск без каких-либо гарантий.

Скрипт

Скачать скрипт можно на GitHub — LinuxVMCreate. Запускать его вы можете как через командную консоль, так и через оболочку Powershell ISE.

Как запустить

По умолчанию политика выполнения запрещает запуск любых скриптов 1. Чтобы изменить это поведение, выполните команду:

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

Особенности работы

Скрипт создает виртуальную машину с именем в формате testvm20180322-205408, где 20180322-205408 — текущая дата и время. Из этого вытекает ограничение — больше одной ВМ в секунду вы создать не сможете.

Исходя из best practice по виртуализации Linux на Hyper-V, в скрипте реализована одна рекомендация касательно размера блоков:

When creating the VHDX, use 1MB BlockSizeBytes (from the default 32MB) in PowerShell

Эта опция может значительно уменьшить объем динамических виртуальных дисков.


UPD 07.04.2018:

А вот вам сравнение размеров двух виртуальных жестких дисков со свежей Debian 9.0:

Первый создан автоматически с опциями по умолчанию, а второй с 1MB BlockSizeBytes. Разница почти двукратная! Кстати, ОС на этих .vhdx я раскатывал с помощью своего же preseed-файла, о котором немного рассказывал в статье Заметки: Автоматическая установка Debian. Читайте, пользуйтесь!


Однако с её реализацией возникают некоторые проблемы. Дело в том, что при создании виртуального диска через визард создания ВМ или изнутри окна свойств ВМ на диск автоматически назначаются нужные разрешения. Но при создании диска вручную этих разрешений не будет:

Автоматическое создание виртуальных машин Linux 02На скриншоте слева присутствует загадочная учетная запись, имя которой ни что иное как guid виртуальной машины. Если вы попытаетесь назначить эти разрешения вручную, то отыскать эту учетку просто так не получится.

Учитывая все эти тонкости, самый простой вариант переноса корректных разрешений на нужный вам диск — это их копирование с уже существующего диска. Именно это реализовано в срипте в строке:

Если вы не назначите нужных разрешений, виртуальная машина не сможет запуститься.

Советы

Статья best practice по Linux виртуалкам на Hyper-V включает достаточно много рекомендаций 2, рассмотрите необходимость их внедрения для своей инфраструктуры, тестовой или рабочей.

comments powered by HyperComments