Перейти к содержанию

Настройка услуги «Виртуальная машина» для гипервизоров

Общая информация

Настоящая инструкция предназначена для администраторов, выполняющих первичную настройку сервиса.

Виртуальная машина — это базовая вычислительная единица в облачной инфраструктуре, предоставляющая пользователю изолированное окружение для работы. Виртуальные машины могут использоваться для развертывания сервисов, тестирования приложений, выполнения вычислений и других задач.

Для настройки услуги "Виртуальная машина" необходимо выполнить следующие шаги:

  • настройка диалогового окна,
  • настройка каталога сервисов,
  • настройка элементов каталога.

После настройки услуги «Виртуальная машина» сервис будет доступен к заказу в каталоге «Nimbius Services»:
serviceCatalogVM

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

Настройка диалогового окна

  1. Выберите в боковом меню раздел Automation -> Embedded Automate -> Customization -> Service Dialogs.
  2. Выберите раздел Import/Export и загрузите стандартный диалог заказа виртуальной машины, поставляемый в составе Нимбиус nimbius_vm_provision . serviceDialogImport serviceDialogImporting
  3. После загрузки диалог с заполненными настройками появится в разделе Service Dialogs seviceDialogNimbiusVMProvision
  4. Если нужно создать собственную кастомную услугу, перейдите в раздел Automation -> Automate -> Customization -> Service Dialogs -> Add a new Dialog. Настройте диалог - добавьте разделы, поля для формы заказа услуги. Сохраните форму и настройте поля. addNewDialog addingNewDialog

Часть полей могут быть заполнены любыми значениями по выбору пользователя. Другая часть отображает допустимые значения. Перечень допустимых значений генерируется специализированными методами, указанными в таблице. Необязательные поля могут быть удалены из диалога при необходимости.
Описание полей и значений на примере диалога «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 Да Нет -

addingNewDialogVMProvision fieldInfo options

Настройка каталогов сервисов

Каталоги сервисов необходимы для корректного развертывания облачных ресурсов.
1. Перейдите в раздел бокового меню Services → Catalogs → Catalogs.
2. Создайте каталог сервисов Configuration → Add a New Catalog addNewCatalog addingNewCatalog

Настройка элементов каталога сервисов

  1. Перейдите в раздел бокового меню Services → Catalogs → Catalog Items и выберите созданный на предыдущем шаге каталог
  2. Добавьте сервисы в каталог Configuration → Add a New Catalog Item
  3. Выберите Catalog Item Type = Generic
  4. Заполните поля для виртуальной машины. Пример заполнения приведен на скриншоте
    addNewCatalogItem addingNewCatalogItem addingNewCatalogItemVM

Описание 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     Удаление ВМ из базы данных.