Настройка услуги «Виртуальная машина» для гипервизоров
Общая информация¶
Настоящая инструкция предназначена для администраторов, выполняющих первичную настройку сервиса.
Виртуальная машина — это базовая вычислительная единица в облачной инфраструктуре, предоставляющая пользователю изолированное окружение для работы. Виртуальные машины могут использоваться для развертывания сервисов, тестирования приложений, выполнения вычислений и других задач.
Для настройки услуги "Виртуальная машина" необходимо выполнить следующие шаги:
- настройка диалогового окна,
- настройка каталога сервисов,
- настройка элементов каталога.
После настройки услуги «Виртуальная машина» сервис будет доступен к заказу в каталоге «Nimbius Services»:
Сервисы Нимбиус на основе виртуальной машины настраиваются аналогично по указанным шагам.
Настройка диалогового окна¶
- Выберите в боковом меню раздел Automation -> Embedded Automate -> Customization -> Service Dialogs.
- Выберите раздел Import/Export и загрузите стандартный диалог заказа виртуальной машины, поставляемый в составе Нимбиус nimbius_vm_provision .
- После загрузки диалог с заполненными настройками появится в разделе Service Dialogs
- Если нужно создать собственную кастомную услугу, перейдите в раздел Automation -> Automate -> Customization -> Service Dialogs -> Add a new Dialog. Настройте диалог - добавьте разделы, поля для формы заказа услуги. Сохраните форму и настройте поля.
Часть полей могут быть заполнены любыми значениями по выбору пользователя. Другая часть отображает допустимые значения. Перечень допустимых значений генерируется специализированными методами, указанными в таблице. Необязательные поля могут быть удалены из диалога при необходимости.
Описание полей и значений на примере диалога «nimbius_vm_provision»
Описание поля | Имя поля | Обязат. | Динамич. | Метод генерации |
---|---|---|---|---|
Environment | tag_0_environment | Да | Да | list_environments |
Location | tag_0_location | Да | Да | list_locations |
Ресурсный пул | placement_rp_name | Да | Нет | list_resource_pools |
Имя сервиса | service_name | Нет | Да | - |
Описание сервиса | service_description | Нет | Нет | - |
Template | source_id | Да | Да | list_templates |
CPU | option_0_cpu_flavor | Да | Да | list_cpu_flavors |
Memory (GB) | vm_memory | Да | Да | list_memory |
Объем базовых дисков (Гб) | base_disks_size | Нет | Да | baze_disks_size |
Тип основных дисков | tag_0_disk_type | Нет | Нет | - |
Network | vlan | Нет | Да | list_networks |
Префикс имени ВМ | vm_name | Нет | Нет | - |
Описание ВМ | vm_description | Нет | Нет | - |
Дополнительный диск (Гб) | additional_disk_size | Нет | Нет | - |
Тип дополнительного диска | additional_disk_type | Нет | Нет | - |
Биллинг | service_billing | Да | Нет | - |
Откат изменений | rollback_enable | Да | Нет | - |
Настройка каталогов сервисов¶
Каталоги сервисов необходимы для корректного развертывания облачных ресурсов.
1. Перейдите в раздел бокового меню Services → Catalogs → Catalogs.
2. Создайте каталог сервисов Configuration → Add a New Catalog
Настройка элементов каталога сервисов¶
- Перейдите в раздел бокового меню Services → Catalogs → Catalog Items и выберите созданный на предыдущем шаге каталог
- Добавьте сервисы в каталог Configuration → Add a New Catalog Item
- Выберите Catalog Item Type = Generic
- Заполните поля для виртуальной машины. Пример заполнения приведен на скриншоте
Описание state machine для услуги Виртуальная машина¶
Процесс развертывания услуги Виртуальная машина¶
Развертывание услуги "Виртуальная машина" включает в себя две взаимосвязанные последовательности действий (state machine):
- NimbiusVM (service state machine)
- Provision VM from Template (VM state machine)
В service state machine задается последовательность действий, которые необходимо выполнить для создания сервиса. Конфигурация находится в домене NIMBIUS_CONFIG/Service/Provisioning/Provisioning/ServiceProvision_Template/NimbiusVM
Перечень шагов для NimbiusVM и описание их назначения представлен в таблице ниже.
Шаг | Метод | Описание | Комментарий |
---|---|---|---|
Sequencer | /Service/Provisioning/StateMachines/Methods/GroupSequenceCheck |
Определяет очередность формирования запросов на создание сервисов в случае, если услуга состоит из нескольких дочерних сервисов (bundle). | |
SyncBillingPriceOrders | /Integration/Billing/Billing/sync_price_orders |
Отправляет запрос на синхронизацию стоимости заказа в биллинг. | |
AddAadditionalDialogOptions | /Service/Provisioning/StateMachines/Methods/AddAadditionalDialogOptions |
Добавляет дополнительные диалоговые опции, которые отсутствуют в диалоговом окне заказа услуги, но необходимы для ее корректного развертывания. | Взаимодействует с методами: - nimbius_placement_settings - в методе содержатся настройки для размещения ВМ; - PrepareAdditionalDialogOptions - в методе задаются дополнительные диалоговые опции; - PrepareAdditionalDialogOptionsModule - вспомогательные функции. |
PreProvision | /Service/Provisioning/StateMachines/Methods/PreProvision |
Назначает владельца, группу владельца и custom attribute "addr_mode" для сервиса. |
|
DialogParser | /Service/Provisioning/StateMachines/Methods/DialogParser |
Выполняет парсинг информации о диалоговых опциях. | |
NimbiusVMService | /Service/Provisioning/StateMachines/Methods/NimbiusVMService |
- Создает тэги и категории тегов на основе диалоговых опций. - Перезаписывает имя и описание сервиса. - Назначает на сервис теги на основе диалоговых опций. - Назначает опции, необходимые для именования ВМ ( vm_name , linux_host , name , target_name и т.д.). - Добавляет диалоговые опции и теги в дочерние задачи. - Проверяет валидность аргументов и отправляет запрос на создание ВМ. - Устанавливает custom attribute "vm provision requests" для сервиса. |
Взаимодействует с методом: - nimbius_placement_settings - в методе содержатся настройки для размещения ВМ. |
CheckVmProvisioned | /Service/Provisioning/StateMachines/Methods/CheckVmProvisionStatus |
Ожидает корректного завершения всех запросов на создание ВМ. | |
Provision | /Service/Provisioning/StateMachines/Methods/Provision |
Создает сервис в БД. | |
СheckProvisioned | /Service/Provisioning/StateMachines/Methods/CheckProvisioned |
Ожидает корректного завершения создания сервиса. | |
JoinDomain | /Integration/ActiveDirectory/PlaybooksMethods/JoinDomain |
Вводит linux ВМ в домен и регистрирует A и PTR записи на DNS сервере. Устанавливает custom attribute "vms_ip_address" для сервиса. |
Взаимодействует с методом: - GetServiceVmsIpAddresses - поиск IP-адресов для всех виртуальных машин сервиса и запись найденных адресов в custom attribute "vms_ip_address" сервиса. |
SetAnsibleVars | Используется для установки переменных, необходимых для запуска ansible playbook. | ||
RunPlaybook | Используется для запуска ansible playbook. | ||
SyncBilling | /Integration/Billing/Billing/sync |
Отправляет запрос на синхронизацию в биллинг. | |
EmailOwner | /System/Notification/Email/ServiceProvisionComplete?event=service_provisioned |
Отправляет email-уведомление пользователю о том, что сервис создан. | |
Rollback | /Service/Provisioning/StateMachines/Methods/Rollback |
Запускает процедуру отката изменений в случае ошибки развертывания. | |
Finished | /System/CommonMethods/StateMachineMethods/service_provision_finished |
Отправляет уведомление и отмечает в БД, что создание сервиса завершено. |
В VM state machine задается последовательность действий, которые необходимо выполнить для создания виртуальной машины. Конфигурация находится в домене NIMBIUS_CONFIG/Infrastructure/VM/Provisioning/StateMachines/VMProvision_VM/Provision VM from Template (template)
Перечень шагов для Provision VM from Template и описание их назначения представлен в таблице ниже.
Шаг | Метод | Описание | Комментарий |
---|---|---|---|
CustomizeRequest | /Infrastructure/VM/Provisioning/StateMachines/Methods/CustomizeRequest#${/#miq_provision.source.vendor} |
Осуществляется установка опций, необходимых для присвоения имени ВМ в процессе ее настройки, и выбор используемых VMware customization specification или cloud-init template (метод специфический для конкретного провайдера). | |
Placement | /Infrastructure/VM/Provisioning/Placement/default#${/#miq_provision.source.vendor} |
Выбирает целевое расположение ВМ в виртуальной инфраструктуре (метод специфический для конкретного провайдера). | Взаимодействует с методами: - nimbius_placement_settings - настройки размещения ВМ; - log_object - отображает сообщения журнала для атрибутов объекта. |
PreProvision | /Infrastructure/VM/Provisioning/StateMachines/Methods/PreProvision#${/#miq_provision.source.vendor} |
Устанавливает дополнительные опции для выбора целевого расположения ВМ в виртуальной инфраструктуре (метод специфический для конкретного провайдера). | |
AquireIPAddress | /NetBox/NetBox/AquireIPAddress |
Резервирует IP-адрес в IPAM. | Взаимодействует с методами: - ClassRestCore - отправка стандартных REST-запросов; - ClassNetBox - отправка REST-запросов в NetBox. |
Provision | /Infrastructure/VM/Provisioning/StateMachines/Methods/Provision |
Создает ВМ в виртуальной инфраструктуре. | |
CheckProvisioned | /Infrastructure/VM/Provisioning/StateMachines/Methods/CheckProvisioned |
Ждет корректного завершения создания ВМ в виртуальной инфраструктуре. | |
PostProvision | /Infrastructure/VM/Provisioning/StateMachines/Methods/PostProvision |
Назначается имя сервису, ВМ добавляется к сервису, для ВМ назначается владелец, группа владельца и теги. | |
AddDisk | /Infrastructure/VM/Provisioning/StateMachines/Methods/AddDisk |
Добавляет дополнительный диск к ВМ. | |
CheckDiskAdded | /Infrastructure/VM/Provisioning/StateMachines/Methods/CheckDiskAdded |
Проверка квот при добавлении дополнительного диска к ВМ. | |
StartVM | /Infrastructure/VM/Provisioning/StateMachines/Methods/StartVM |
Включает ВМ. | |
WaitForVMIPAddresses | /Infrastructure/VM/Provisioning/StateMachines/Methods/WaitForVMIPAddresses |
Ждет корректного назначения IP-адреса для ВМ в виртуальной инфраструктуре. | |
WaitForVMHostName | /Infrastructure/VM/Provisioning/StateMachines/Methods/WaitForVMHostName |
Ждет корректного назначения имени для ВМ в виртуальной инфраструктуре. | |
EmailOwner | /Infrastructure/VM/Provisioning/Email/MiqProvision_Complete |
Отправляет email-уведомление пользователю о том, что ВМ создана. | |
Finished | /System/CommonMethods/StateMachineMethods/VmProvisionFinished |
Отправляет уведомление (notification) и отмечает в БД, что создание ВМ завершено. |
Процесс удаления услуги Виртуальная машина¶
Удаление услуги "Виртуальная машина" включает в себя две взаимосвязанные последовательности действий (state machine):
- Default (service state machine);
- Default (VM state machine).
В service state machine задается последовательность действий, которые необходимо выполнить для удаления сервиса. Конфигурация находится в домене NIMBIUS_VM/Service/Retirement/StateMachines/ServiceRetirement/Default
Перечень шагов для Default и описание их назначения представлен в таблице ниже
Шаг | Метод | Описание |
---|---|---|
StartRetirement | /Service/Retirement/StateMachines/Methods/StartRetirement |
Выполняется проверка того, что сервис не находится в процессе удаления. Запуск удаления сервиса. |
ReleaseIPAddress | /NetBox/NetBox/ReleaseIPAddress |
Удаление зарезервированного IP адреса в IPAM. |
RemoveAdRecord | /Integration/ActiveDirectory/WinrmMethods/RemoveAdRecord |
Удаление аккаунта компьютера из Microsoft Active Directory. |
RemoveDnsRecord | /Integration/ActiveDirectory/WinrmMethods/RemoveDnsRecord |
Удаление DNS записей из зоны на Microsoft DNS сервере. |
RetireService | /Service/Retirement/StateMachines/Methods/RetireService |
|
CheckServiceRetired | /Service/Retirement/StateMachines/Methods/CheckServiceRetired |
Проверка, что все задачи на удаление завершены. |
SyncBilling | /Integration/Billing/Billing/sync |
Отправка запроса на синхронизацию в биллинг. |
FinishRetirement | /Service/Retirement/StateMachines/Methods/FinishRetirement |
Установка атрибута, что сервис удален. Отправка уведомления пользователю. |
DeleteServiceFromVMDB | /Service/Retirement/StateMachines/Methods/DeleteServiceFromVMDB |
Удаление сервиса из базы данных. |
В VM state machine задается последовательность действий, которые необходимо выполнить для удаления виртуальной машины.
Конфигурация находится в домене NIMBIUS_VM/Infrastructure/VM/Retirement/StateMachines/VMRetirement/Default
Перечень шагов для Default и описание их назначения представлен в таблице ниже
Шаг | Метод | Описание |
---|---|---|
StartRetirement | /Infrastructure/VM/Retirement/StateMachines/Methods/StartRetirement |
Выполняется проверка того, что ВМ не находится в процессе удаления. Запуск удаления ВМ. |
PreRetirement | /Infrastructure/VM/Retirement/StateMachines/Methods/PreRetirement#${/#vm.vendor} |
Выключение ВМ. |
CheckPreRetirement | /Infrastructure/VM/Retirement/StateMachines/Methods/CheckPreRetirement#${/#vm.vendor} |
Проверка, что ВМ выключилась. |
RemoveFromProvider | /Infrastructure/VM/Retirement/StateMachines/Methods/RemoveFromProvider |
Удаление ВМ в виртуальной инфраструктуре. |
EmailOwner | /System/Notification/Email/InfrastructureVmRetired?event=vm_retired |
Отправка почтового уведомления о том, что ВМ удалена. |
CheckRemovedFromProvider | /Infrastructure/VM/Retirement/StateMachines/Methods/CheckDeletedFromProvider |
Проверка того, что ВМ удалилась в виртуальной инфраструктуре. |
FinishRetirement | /Infrastructure/VM/Retirement/StateMachines/Methods/FinishRetirement |
Установка атрибута ВМ удалена. Отправка уведомления пользователю. |
DeleteFromVMDB | /Infrastructure/VM/Retirement/StateMachines/Methods/DeleteFromVMDB |
Удаление ВМ из базы данных. |