Vmware развернуть виртуальную машину из образа
Вы, наверное, развернули уже сотни или тысячи виртуальных машин с помощью vSphere-клиента для Windows. Однако, начиная с версии vSphere 5.1, VMware рекомендует выполнять задачи по администрированию виртуальной среды с помощью веб-клиента, так как со следующей версии клиента для Windows уже не будет в комплекте поставки. Другими словами, «учитесь сейчас или потом пожалеете».
Давайте начнем с простого и научимся выполнять одну из самых распространенных задач – развертывание новой виртуальной машины с помощью веб-клиента vSphere.
Предыдущие версии веб-клиента vSphere обладали ограниченной функциональностью. Последняя версия 5.1 предлагает намного больше способов развертывания виртуальных машин (ВМ), чем просто “создание новой ВМ”:
- Создание новой ВМ с нуля;
- Развертывание новой ВМ с помощью шаблона;
- Клонирование виртуальной машины;
- Клонирование виртуальной машины в шаблон;
- Конвертация виртуальной машины в шаблон;
- Клонирование шаблона в шаблон;
- Конвертация шаблона в виртуальную машину;
- Модификация гостевой ОС виртуальной машины;
Если вы уже использовали веб-клиент vSphere ранее, то будете весьма удивлены его новыми возможностями по выполнению всех этих задач. Еще недавно в нем можно было только проверить состояние ВМ, включить ее или выключить, а сегодня веб-клиент почти полностью заменяет привычный клиент vSphere для Windows (и быстро приближается к тому, чтобы стать полноценной заменой). Обратите внимание на представление хостов vSphere в версии 5.1 (см. рис. 1).
Рисунок 1. Представление хостов в веб-клиенте vSphere 5.1
Как и клиент vSphere для Windows, веб-клиент предлагает несколько способов создания новой ВМ с нуля. Например, в представлении хостов кликните на меню Actions и выберите команду New Virtual Machine (см. рис. 2).
Рисунок 2. Создание новой ВМ в веб-клиенте.
Откроется мастер создания новой ВМ. Так же, как и при использовании клиента vSphere для Windows, вам потребуется указать имя, местоположение, устройство хранения, совместимость с оборудованием хоста, гостевую ОС и параметры оборудования. Из новых возможностей я заметил:
Рисунок 3. У вас есть несколько вариантов.
- Возможность создать правила для SDRS (если вы используете эту функцию)
- Возможность сохранить задание, находящееся в процессе выполнения, для его дальнейшего продолжения
После выполнения всех шагов вы увидите следующую картину (рис. 4).
Рисунок 4. Создание ВМ.
Теперь можно установить на ВМ гостевую ОС таким же образом, как с помощью клиента vSphere для Windows, и выполнять те же операции. Именно в этом вам следует попрактиковаться при тестировании версии vSphere 5.1.
Рисунок 5. Главная панель плагина Veeam Backup & Replication для веб-клиента vSphere.
Итак, вот вы установили ESXi, произвели первоначальную настройку и готовы создать первую виртуальную машину. В этой статье рассмотрим создание виртуальной машине на хосте без использования VCenter server(его установку рассмотрим в другой статье, да и процесс создания ВМ отличается не сильно). Давайте приступим.
Подключаемся к хосту, на котором нужно создать виртуальную машину, кликаем правой кнопкой на Host и в контекстном меню выбираем Create/Register VM.
Откроется мастер создания ВМ. На первом экране можно выбрать, что мы хотим сделать: создать новую ВМ, развернуть ВМ из OVF/OVA файла или зарегистрировать уже созданную ВМ. Нас интересует первый вариант, его и выбираем и жмем Next.
На следующем шаге указываем имя ВМ и гостевую операционную систему(в моем случае это Windows Server 2016, вы можете выбрать свой вариант). Жмем Next.
Следующим шагом будет выбор хранилища для файлов ВМ. У нас выбор небогатый, поэтому указываем наш datastore1.
Следующее окно мастера позволяет сконфигурировать виртуальное «железо» нашей ВМ. Выделяем необходимые ресурсы, добавляем или удаляем устройства и жмем Next.
На следующем экране смотрим Summary и завершаем создание ВМ нажатием кнопки Finish.
Ну вот мы и создали нашу первую виртуальную машину.
Но, поскольку толку от ВМ без операционной системы немного, давайте установим на машину выбранный нами Windows Server 2016.
Для того, чтобы установить операционную систему на ВМ, нам понадобится ISO-образ нужной операционной системы смонтировать в CD-привод нашей виртуальной машины. Но, прежде чем смонтировать образ, нужно загрузить его на хранилище хоста. Как загрузить файл на хост ESXi описано в статье Как установить драйвер на ESXi. Напомню вкратце, что нужно кликнуть правой кнопкой на datastore хоста, выбрать пункт Browse и, указав нужный ISO-образ, загрузить его, нажав Upload.
Также, есть вариант загрузиться с ISO-образа, расположенного на локальном компьютере, с которого вы подключились к хосту. Об этом я написал в отдельной статье.
Итак, когда ISO-образ загружен, давайте подключим его к нашей ВМ.
Кликаем правой кнопкой по нашей ВМ и выбираем пункт Edit settings.
ставим галочку Connect и выбираем Datastore ISO file.
На datastore указываем нужный ISO file и нажимаем Select.
Мы подключили наш ISO-образ в виртуальную машину.
После включения ВМ, начнется обычная установка Windows.
Теперь у вас не будет проблем с тем, чтобы создать виртуальную машину VMware.
Сегодня разберемся, как развернуть виртуальную машину vmware из шаблона.
Развернуть виртуальную машину можно из графического интерфейса или при помощи PowerCLI.
Импортируем образ
Для импорта образа ВМ в библиотеку можно воспользоваться инструментами OVF Tool или vcd-cli. Это — инструменты, разработанные VMware. Они хорошо документированы и работают стабильно. В дальнейшем из библиотеки Cloud Director можно разворачивать ВМ из созданного шаблона вручную или с инструментами автоматизации (например, Terraform), добавив по требованию сетевые контроллеры, дополнительные диски и так далее.
Таким образом, мне удалось подготовить образ VirtualBox к загрузке в VMware Cloud Director. Описал шаги для реализации полноценного CI-пайплайна.
1. Что понадобится
- Рабочий ESXi-сервер. Об установке гипервизора VmWare ESXi версии 4.1 читайте здесь.
- ISO-образ или компакт-диск с дистрибутивом операционной системы для установки в виртуальную машину.
Редактируем .ovf
На предыдущем этапе мы настроили экспорт образа ВМ в Open Virtualization Format. Следующим шагом будет редактировать файл *.ovf.
Я написал специальный скрипт на Python 3.8 (он включен в дистрибутив Ubuntu Server 20.04) и «распарсил» packer-manifest.json, чтобы извлечь путь до файла .ovf. Вот часть, решающая эту задачу:
Переменная ovf_in хранит путь до файла .ovf, а ovf_out — путь до нового файла .ovf, в котором мы сохраним изменения. Чтобы эти изменения внести, использую модуль xml.etree.ElementTree.
При редактировании XML очень помогла утилита XMLStarlet. Она покажет, какие элементы дерева входят в состав файла .ovf.
Вывод утилиты XMLStarlet
Вывод утилиты XMLStarlet представлен на языке XPath. Как вы можете заметить, пространство имен определено не для каждого элемента — в их названии отсутствует часть перед символом двоеточия. Важно помнить, что при работе с XML в Python это приведет к неоднозначной трактовке атрибутов.
Удаляем элементы, содержащие упоминания сети и сетевых адаптеров, при разворачивании виртуальной машины из шаблона всегда можно указать новые адаптеры:
Из элементов ниже я удалил только те, в значении которых содержат слово Ethernet:
Исключаем элементы с упоминанием IDE-контроллеров. IDE нам не нужно, так как мы будем работать со SCSI. В первом случае удаляем значения, где упоминается ideController, а во втором — только строки с атрибутом name="IDE Controller".
Удаляем аудиоконтроллер. Он нам также не понадобится, так как практически никогда не используется на серверах.
Для оперативной памяти заменяем единицы измерения. Меняем их с MegaBytes на byte*2^20. Этот нюанс связан с тем, что разные производители программного обеспечения порой трактуют Open Virtualization Format по-разному:
Меняем тип системы. Вместо virtualbox-2.2 прописываем vmx-16, то есть меняем систему виртуализации с VirtualBox на VMware.
Здесь дополнительно отмечу, что для работы с модулем xml.etree.ElementTree необходимо зарегистрировать используемые пространства имен функцией xml.etree.ElementTree.register_namespace. Их можно найти в исходном файле .ova по значению атрибутов xmlns.
По итогу мы получаем финальный скрипт ovf-patch.py:
После запуска скрипта в выходном каталоге появятся файлы:
Образ жесткого диска: ubuntu-18.04-amd64-disk001.vmdk;
XML-файл с описанием ВМ: ubuntu-18.04-amd64.ovf;
XML-файл с описанием ВМ, готовый к импорту в Cloud Director: ubuntu-18.04-amd64-vmware.ovf.
В качестве примера привожу исходный файл ubuntu-18.04-amd64.ovf:
И файл с внесенными изменениями ubuntu-18.04-amd64-vmware.ovf:
Развертывание ВМ из шаблона.
Теперь кликаем по шаблону ПКМ и выбираем пункт «Deploy Virtual Machine from this Template».
Откроется мастер развертывания из шаблона. Выбираем имя нашей будущей ВМ и папку, в которую хотите ее поместить.
Выбираем хост для размещения.
На следующем экране можно выбрать, кастомизировать ли ВМ или нет, и есть возможность сделать это с помощью ранее созданного профиля.
Мы выберем второй вариант: изменить настройки с помощью мастера.
Вводим имя и организацию:
На следующем экране, можно указать сразу имя машины, а можно(как в нашем случае), сделать это в мастере.
Дальше можно ввести лицензионный ключ Windows или снять галку.
Затем вводим пароль локальной учетки Администратор. Также, можно поставить «птичку» автоматического логина под этой учеткой.
Указываем Time Zone.
Дальше можно ввести команду, которая выполнится при первом входе пользователя.(мы оставляем это поле пустым).
Следующим идет экран сетевых настроек. Можно выбрать настройки по dhcp или настроить интерфейсы статически.
Потом идут настройки принадлежности к домену или рабочей группе.
На следующем экране оставляем галку и жмем «Next».
Если мы хотим сохранить настройки мастера для использования в будущем, то даем ему имя(описание), оставляем галку и сохраняем. Если нет, то убираем галку и жмем «Next».
На следующем шаге проверяем всё и жмем «Finish».
По-скольку, мы выбрали ввод имени ВМ в мастере, то мы увидим следующее:
На заключительном экране можно сразу изменить настройки виртуального оборудования, поставив соответствующую галку, либо сделать это после развертывания машины.
Через некоторое время машина будет развернута на выбранном хосте. Можно изменить ее настройки(если вы еще это не сделали) и включить ВМ.
На этом развертывание виртуальной машины vmware из шаблона можно считать законченным.
P.S. Пару слов о развертывании виртуальных машин из OVF(OVA).
Для того чтобы развернуть ВМ из OVF в Windows-клиенте нажмите вкладку File, а в web-клиенте кликните правой кнопкой мыши по датацентру или хосту, выберите пункт Deploy OVF Template и следуйте подсказкам мастера.
Развертывание виртуальной инфраструктуры любой сложности начинается с такого шага, как создание виртуальной машины. В качестве примера сделаем виртуальную машину под установку WinXP в достаточно простой конфигурации — один процессор, 512 МБ памяти, накопитель на 10 Гб, одна сетевая карта. Этого будет достаточно для установки системы, а также рассмотрения возникающих при этом вопросов и некоторых тонкостей в настройке.
5. Установка VMware Tools.
Запустив диспетчер задач в виртуальной машине, увидим, что не для всех устройств установлены соответствующие драйверы. Правой кнопкой на имени виртуальной машины вызовем управляющее меню. Во вкладке “Guest” выберем “Install/Upgrade VMware Tools”.
Ответим утвердительно на предупреждение. Установка VMware Tools возможна только на запущенной виртуальной машине.
Практически это выглядит так — vSphere-client подключает к виртуальному CDrom-у образ диска с драйверами для ОС виртуальной машины. WinXP реагирует на появление нового диска запуском autorun.inf. Так начинается процесс инсталляции. Если на данный момент автозапуск отключен, что рекомендуется в целях безопасности, то необходимо запустить setup.exe с CDRom-а вручную.
Выберем типичный вариант установки и будем нажимать “Далее” до конца установки. Так-же согласимся на перезагрузку.
После перезагрузки Диспетчер устройств покажет, что все драйвера установлены. Поведение мышки и клавиатуры также изменится.
Изменим разрешение экрана виртуальной машины.
Видно, что максимальное разрешение равно тому, что было установлено при настройке параметров виртуальной машины.
Был рассмотрен не самый быстрый способ создания виртуальной машины, а более подробно описывающий данный процесс для наглядности и понимания происходящего, и пожалуй, более универсальный.
Для чего это нужно?
Во-первых, для того, чтобы каждый раз не устанавливать операционную систему с нуля.
Во-вторых, чтобы можно было получить машину с необходимыми настройками и установленным софтом.
Настраиваем шаблон Packer
В шаблон Packer внесем следующие изменения:
Настроим экспорт образа в формате OVF. Для этого в конфигурационном файле атрибуту format присвоим значение ovf. Эта операция позволит нам получить на выходе два отдельных файла: XML-документ с описанием ВМ и образ жесткого диска. Так, нам будет проще настраивать нашу систему в дальнейшем. Отмечу, что для своего кейса я не создаю дополнительные диски и не включаю iso-образы в состав виртуальной машины. Расширить дисковое пространство или добавить дополнительные накопители можно непосредственно при развертке виртуальной машины.
Укажем SCSI в качестве контроллера жестких дисков. Соответствующее значение (scsi) необходимо прописать в атрибуте hard_drive_interface. В VirtualBox будет эмулироваться контроллер LsiLogic, что является плюсом, поскольку контроллер этого типа поддерживается в Cloud Director.
В качестве прошивки выберем BIOS, а в качестве видеоконтроллера — vmsvga (VMware SVGA). Атрибуты, которые нам нужны, — это firmware и gfx_controller.
Финальный вариант шаблона для Packer — main.pkr.hcl — выглядит так:
Более подробно о том, для чего нужны остальные атрибуты, вы можете узнать в документации на сборщик virtualbox-iso. Здесь я дополнительно хочу выделить лишь один из них — headless, отвечающий за сборку в фоновом режиме. Этот флажок стоит установить в состояние false, чтобы включить графический интерфейс. Это упростит отладку.
Теперь, если мы запустим Packer с нашими настройками, он сгенерирует три файла:
Образ жесткого диска: ubuntu-18.04-amd64-disk001.vmdk;
XML-файл с описанием виртуальной машины: ubuntu-18.04-amd64.ovf;
JSON-файл со списком созданных артефактов: packer-manifest.json.
Последний файл записан благодаря блоку:
Файл packer-manifest.json будет иметь следующее содержимое:
Этот файл поможет нам найти результат сборки образа ВМ (ubuntu-18.04-amd64-disk001.vmdk и ubuntu-18.04-amd64.ovf).
Начало работы
В качестве хоста для развертки окружения, в котором будет запускаться CI-пайплайн, выбрал виртуальную машину с Ubuntu Server 20.04. На неё установил утилиты Packer и VirtualBox. Не буду подробно рассказывать, как это сделать, так как все необходимые инструкции вы можете найти в официальной документации этих инструментов [раз, два].
Следующим шагом стала подготовка шаблона для Packer. Packer включает в себя сборщики для разных окружений, в том числе для VirtualBox — virtualbox-iso. Написал шаблон, запустил сборку образа ВМ. Осталось загрузить этот образ в библиотеку Cloud Director. Обнаружил, что Cloud Director отказывается его импортировать. Это основная трудность, которая заняла много времени.
В процессе поиска решения проблемы я наткнулся на статью иностранного коллеги. Он заметил, что из-за несовместимости в системных типах и поддержке аппаратного обеспечения (разная трактовка открытого стандарта), экспорт такого образа в VMware Cloud Director требует дополнительной настройки — какой именно, покажу далее.
2. Создание виртуальной машины
Запустим vSphere Client и подсоединимся к ESXi-серверу. На закладке “Summary” видим основные параметры хоста. Щелкнем на “New Virtual Machine” и начнем создание виртуальной машины.
Для начала выберем типичную конфигурацию. В варианте “Custom” много излишних для данного примера подробностей. Жмем “Next”.
Присвоим имя нашей виртуальной машине. Рекомендуется выбрать понятное имя. Снова “Next”.
Укажем хранилище для размещения виртуальной машины. “Next”.
Укажем тип гостевой ОС. Это определит начальные параметры оборудования виртуальной машины — количество памяти, процессоров, объем накопителя и т.д. Выбрав параметры, жмем “Next”.
Укажем объем диска виртуальной машины и снова нажмем “Next”.
В завершении увидим сводную таблицу введенных параметров. Инсталлировать гостевую ОС будем позже. Жмем “Finish”.
Вот наша виртуальная машина. Щелкнем по ней и попадаем на стартовое окно. Закроем его, так как большой информационной нагрузки оно не несет.
3. Настройка параметров виртуальной машины
Основные параметры нашей виртуальной машины собраны в закладке “Summary”. Более подробно параметры можно рассмотреть и при необходимости поменять нажав “Edit Setting”.
Рассмотрим вкладку “Hardware”. Тут перечислено виртуальное оборудование доступное нашей виртуальной машине. Изменим количество памяти для виртуальной машины.
Количество процессоров. Каждый процессор одноядерный, по этому если нужна многоядерная конфигурация — просто укажем нужное количество процессоров. В данном случае менять не будем, так как для тестовой машины этого достаточно.
Изменим настройки видео. Как правило указанные настройки достаточны для Windows-серверов. Применим их и к тестовой машине.
Обратим внимание на путь размещения файла содержащего диск виртуальной машины.
CD-Rom виртуальной машины. Пока оставим все, как есть.
Настройки сетевой карты. Виден тип сетевой карты, ее MAC-адрес, имя сети подключения. В данном случае организована только одна сеть куда и подключен данный сетевой адаптер. Вариантов выбора типов сетевой карты достаточно много, но воспользуемся выставленной по умолчанию — для нее есть драйвера у большинства современных ОС и ее производительности хватит для тестового примера. Сменить тип сетевой карты невозможно, нужно удалить имеющийся и добавить новый, указав для него необходимый тип. При уже установленной в виртуальной машине ОС это потянет за собой необходимость настройки нового сетевого интерфейса.
Флоппи-диск так же как и CD-Rom может использовать физический имеющийся на ESXi-сервере и на машине с vSphere-client, так и файл-образ. Как правило не используется. На его примере покажем удаление ненужного оборудования из виртуальной машины.
Удаленное оборудование выглядит так. Нажимаем “Ok”, чтобы сохранить выбранные параметры.
При следующем входе увидим применившиеся параметры. Разумеется все эти настройки — выделение нужного количества памяти, настройки видео и т. д. можно было указать на шаге создания виртуальной машины. Но имеет смысл продемонстрировать возможность их изменения.
Прежде чем мы начнем
Я решил оставить Packer, но заменить Fusion на VirtualBox. Выбор в пользу open source решения был сделан по причине того, что оно распространяется на бесплатной основе, поддерживает большое количество хостовых ОС и экспорт образов в форматах OVF и OVA. Кроме того, VirtualBox предоставляет репозитории для GNU/Linux, позволяющие автоматически обновлять пакеты операционных систем. К слову, аналогичный репозиторий предлагают и разработчики Packer.
0. Оглавление
Создание шаблона.
Для того, чтобы развернуть виртуальную машину vmware из шаблона, нужно, для начала, этот шаблон создать. Для этого нужно создать виртуальную машину(ВМ), установить на нее необходимые обновления и софт, произвести нужные настройки. Когда вы это сделали, нужно конвертировать ВМ в шаблон. Допустим, у нас есть ВМ с установленной там Windows Server 2016 и нужным нам софтом. Давайте сделаем из нее шаблон. Щелкаем по ВМ правой кнопкой мыши(предварительно выключив ее), выбираем «Template»>>»Convert to template».
После этого, ВМ не будет видна на вкладке VCenter «Hosts and Clusters». Чтобы увидеть наш шаблон, нужно выбрать в клиенте Vsphere «Inventory»>>»VMs and Templates».
Видим, что наша машина стала шаблоном(изменилось иконка).
4. Запуск виртуальной машины
Для наблюдения перейдем на вкладку “Console” — это практически полноценный монитор виртуальной машины и нажмем кнопку “Пуск”.
Воспользуемся имеющейся сборкой.
Правой кнопкой на имени виртуальной машины вызовем управляющее меню. Во вкладке “Guest” выберем “Send Ctrl+Alt+del”. Так мы передадим виртуальной машине команду на перезагрузку.
После перезагрузки виртуальной машины с примонтированного образа диска будет начат процесс инсталляции ОС. При щелчке внутри окна виртуальной машины ввод клавиатуры и мышь будут “захвачены” и курсор будет перемещаться только в пределах этого окна.
Если необходимо перегрузить виртуальную машину, находясь в ней — нажмите на клавиатуре комбинацию “Ctrl+Alt+Ins”. vSphere-client перехватит эту комбинацию и отправит виртуальной машине необходимое “Ctrl+Alt+Del”. Во время перезагрузки можно нажать F2 и попасть в настройки BIOS виртуальной машины. Это иногда нужно для смены порядка загрузочных устройств. По умолчанию загрузка с HDD стоит раньше загрузки с CDRom.
Для “освобождения” ввода достаточно нажать на клавиатуре комбинацию “Ctrl+Alt”.
Движения мыши в окне виртуальной машины будут несколько затруднены, аналогично и ввод с клавиатуры будет немного медленнеe. Это исчезнет после установки драйверов.
По окончании установки получим ОС с начальными установками. В частности разрешение экрана будет составлять 640*480 точек. Так-же зайдем в настройки виртуального CDRom-а и отключим ISO-файл.
Смотрите также:
В данной статье будет рассматриваться пошаговая установка гипервизора VmWare ESXi версии 4.1. Кратко - разница между ESX и ESXi состоит в следующем: ESX - это гипервизор, работающий под управлением Red Hat Linux,…
Переустановка операционной системы или смена компьютерного устройства не означает конец работы с установленными гостевыми ОС в программе VirtualBox. Правда, исключением может быть случай, когда файлы жёстких дисков виртуальных машин находятся на…
В данной статье будет рассматриваться пошаговая миграция гипервизора VmWare ESXi версии 4.1 на версию 5.1. Необходимость такого действия может быть вызвана желанием использовать новые возможности гипервизора, появившиеся в версии 5.1.…
Запись опубликована в рубрике ESXi с метками ESXi, виртуализация. Добавьте в закладки постоянную ссылку.
Привет, Хабр! Меня зовут Роман Петров, занимаюсь разработкой продуктов для управления учетными данными в SberCloud. В рамках одного проекта мне потребовалось автоматизировать сборку виртуальных машин под VMware Cloud Director.
Под катом — кратко о том, как я это сделал.
Читайте также: