|
|
@ -0,0 +1,459 @@
|
|
|
|
|
|
|
|
Функция доступна в версии провайдера 4.5.1 и выше.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_Resource_ функция **decort_cb_kvmvm** служит для управления виртуальными машинами, создаваемыми в платформе DECORT на базе технологии виртуализации KVM.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Аргументы
|
|
|
|
|
|
|
|
_Resource_ функция **decort_cb_kvmvm** принимает следующие аргументы:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
|
|
|
| --- |---------------------------------------------------------------|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
|
|
|
|
|
|
| name | string | :heavy_check_mark: | Имя виртуальной машины. Обратите внимание, что имя должно быть уникальным в рамках ресурсной группы. |
|
|
|
|
|
|
|
|
| rg_id | int | :heavy_check_mark: | Идентификатор ресурсной группы, которой принадлежит данная виртуальная машина. |
|
|
|
|
|
|
|
|
| driver | string | :heavy_check_mark: | Аппаратная архитектура виртуальной машины.<br/>Может принимать одно из следующих значений:<br/> * "KVM_X86" - виртуальная машина KVM на аппаратной платформе x86.<br/> * "KVM_PPC" - виртуальная машина KVM на аппаратной платформе IBM Power. |
|
|
|
|
|
|
|
|
| cpu | int | :heavy_check_mark: | Количество процессоров. |
|
|
|
|
|
|
|
|
| ram | int | :heavy_check_mark: | Объём оперативной памяти в МБ.<br/> |
|
|
|
|
|
|
|
|
| image_id | int | :heavy_check_mark: | Идентификатор образа, на базе которого создаётся загрузочный диск виртуальной машины.<br/> |
|
|
|
|
|
|
|
|
| boot_disk_size | int | :x: | Размер загрузочного диска виртуальной машины в ГБ. |
|
|
|
|
|
|
|
|
| sep_id | int | :x: | ID SEP для создания загрузочного диска. Если не задан, будет использоваться sepId образа. Значение по умолчанию 0. |
|
|
|
|
|
|
|
|
|pool| string | :x: | Пул (если установлен sepId). Если значение не задано, то пул будет выбран системой. |
|
|
|
|
|
|
|
|
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. |
|
|
|
|
|
|
|
|
| description | string | :x: | Текстовое описание виртуальной машины. |
|
|
|
|
|
|
|
|
| started | bool | :x: | Флаг запуска машины,<br/>по-умолчанию - true.<br/>Если true - машина включена,<br/>если false - выключена. |
|
|
|
|
|
|
|
|
|alt_boot_id| int | :x: | ID live CD-ROM для загрузки образа. |
|
|
|
|
|
|
|
|
| stack_id | int | :x: | id стэка |
|
|
|
|
|
|
|
|
| is | string | :x: | Наименование системы |
|
|
|
|
|
|
|
|
| ipa_type | string | :x: | Тип аутентификатора |
|
|
|
|
|
|
|
|
| custom_fields | string | :x: | Кастомные поля |
|
|
|
|
|
|
|
|
| network | []Struct [см. ниже](#описание-блока-network-args) | :x: | Параметры сетевого подключения.<br/>Если нужно сконфигурировать несколько сетевых подключений, данный блок можно задавать многократно - по одному на каждое подключение. |
|
|
|
|
|
|
|
|
| reason | string | :x: | Причина вызова |
|
|
|
|
|
|
|
|
| affinity_label | string | :x: | Метка для правил affinity |
|
|
|
|
|
|
|
|
| affinity_rules | []Struct [см. ниже](#описание-блока-affinity_rules-args) | :x: | Блок описания правил affinity. Блоков может быть несколько, один или отсутствовать. |
|
|
|
|
|
|
|
|
| anti_affinity_rules | []Struct [см. ниже](#описание-блока-anti_affinity_rules-args) | :x: | Блок описания правил anti-affinity. Блоков может быть несколько, один или отсутствовать. |
|
|
|
|
|
|
|
|
| disks | []Struct [см. ниже](#описание-блока-disks-args) | :x: | Описание диска. Таких может быть любое кол-во, либо не быть вообще |
|
|
|
|
|
|
|
|
| extra_disks | []int | :x: | Список идентификаторов дополнительных дисков, которые подключены к данной виртуальной машине помимо загрузочного диска. Если такие диски отсутствуют, то список будет пустым. |
|
|
|
|
|
|
|
|
| tags | []Struct [см. ниже](#описание-блока-tags-args) | :x: | Задание тэгов компьюта |
|
|
|
|
|
|
|
|
| port_forwarding | []Struct [см. ниже](#описание-блока-port_forwarding-args) | :x: | Настройка порт форвардинга для компьюта |
|
|
|
|
|
|
|
|
| user_access | []Struct [см. ниже](#описание-блока-user_access-args) | :x: | Предоставление доступов к компьюту |
|
|
|
|
|
|
|
|
| snapshot | []Struct [см. ниже](#описание-блока-snapshot-args) | :x: | Создание мнапшотов |
|
|
|
|
|
|
|
|
| rollback | []Struct [см. ниже](#описание-блока-rollback-args) | :x: | Rollback на определенный снапшот |
|
|
|
|
|
|
|
|
| cd | []Struct [см. ниже](#описание-блока-cd-args) | :x: | Добавление диска cd rom |
|
|
|
|
|
|
|
|
| pin_to_stack | bool | :x: | Флаг, отвечающий за добавление кмпьюта в стэк |
|
|
|
|
|
|
|
|
|target_stack_id| int |:x: | Узел, на который переместится машина |
|
|
|
|
|
|
|
|
|force_pin| bool |:x:| Флаг для принужительного добавления компьюта на стэк |
|
|
|
|
|
|
|
|
|enabled| bool |:x:| Флаг доступности компьюта для проведения с ним операций |
|
|
|
|
|
|
|
|
| pause | bool | :x: | Флаг, отвкчающий за pause/resume компьюта |
|
|
|
|
|
|
|
|
| reset | bool | :x: | Флаг, отвкчающий за reset компьюта |
|
|
|
|
|
|
|
|
|restore| bool |:x:| Восстановить удаленный компьют из корзины |
|
|
|
|
|
|
|
|
| auto_start | bool | :x: | Флаг, отвечающий за авто старт при редеплое компьюта |
|
|
|
|
|
|
|
|
| force_stop | bool | :x: | Флаг, отвечающий за стоп при редеплое компьюта |
|
|
|
|
|
|
|
|
| data_disks | string | :x: | Указание того, что делать с дисками при редеплое. Возможные значения: "KEEP", "DETACH" и "DESTROY" |
|
|
|
|
|
|
|
|
| detach_disks | bool | :x: | Отсоединение прикрепленных к виртуальной машине дисков перед ее удалением. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
|
|
|
|
| permanently | bool | :x: | Мгновенное удаление виртуальной машины, минуя корзину. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока disks args
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
|
|
|
| ----------- | ------ | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
| disk_name | string | :heavy_check_mark: | Наименование диска |
|
|
|
|
|
|
|
|
| size | int | :heavy_check_mark: | Размер диска, GB |
|
|
|
|
|
|
|
|
| disk_type | string | :x: | Тип диска. Возможные значения: "D" - диск с данными, "B" - загрузочный диск |
|
|
|
|
|
|
|
|
| sep_id | int | :x: | ID storage endpoint |
|
|
|
|
|
|
|
|
| pool | string | :x: | Наименование пула для размещения диска |
|
|
|
|
|
|
|
|
| desc | string | :x: | Описание диска |
|
|
|
|
|
|
|
|
| image_id | int | :x: | ID образа |
|
|
|
|
|
|
|
|
| permanently | bool | :x: | Флаг для удаления диска. Если выставлен в true - диск будет моментально удален с платформы, иначе будет добавлен в корзину и его можно будет восстановить. Значение поля считывается только при операции `terraform destroy`. По умолчанию - false |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока network args
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
|
|
|
| -------- |--------|--------------------| -------------------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
| net_type | string | :heavy_check_mark: | тип сети, соответствующей данному подключению. "EXTNET" в случае прямого подключения во внешнюю сеть, "VINS" в случае подключения к Virtual Network Segment. |
|
|
|
|
|
|
|
|
| net_id | int | :heavy_check_mark: | идентификатор соответствующего сетевого сегмента: внешней сети в случае `net_type = "EXTNET"` и ViNS в случае `net_type = "VINS"` |
|
|
|
|
|
|
|
|
| ip_address | string | :x: | IP адрес, выделенный данному подключению. |
|
|
|
|
|
|
|
|
| mac | string | :x: |MAC адрес, назначенный соответствующему сетевому интерфейсу виртуальной машины. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока affinity_rules args
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
|
|
|
| -------- | ------ | ------------------ | -------------------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
| topology | string | :heavy_check_mark: | Тип правила. Возможные значения - node, compute |
|
|
|
|
|
|
|
|
| policy | string | :heavy_check_mark: | Строгость правила. Возможные значения - RECOMMENDED (рекомендовано) и REQUIRED (обязательно) |
|
|
|
|
|
|
|
|
| mode | string | :heavy_check_mark: | Режим проверки. Возможные значения - EQ (равно), NE (не равно), ANY - любое |
|
|
|
|
|
|
|
|
| key | string | :heavy_check_mark: | Ключ правила |
|
|
|
|
|
|
|
|
| value | string | :heavy_check_mark: | Значение правила |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока anti_affinity_rules args
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
|
|
|
| -------- | ------ | ------------------ | -------------------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
| topology | string | :heavy_check_mark: | Тип правила. Возможные значения - node, compute |
|
|
|
|
|
|
|
|
| policy | string | :heavy_check_mark: | Строгость правила. Возможные значения - RECOMMENDED (рекомендовано) и REQUIRED (обязательно) |
|
|
|
|
|
|
|
|
| mode | string | :heavy_check_mark: | Режим проверки. Возможные значения - EQ (равно), NE (не равно), ANY - любое |
|
|
|
|
|
|
|
|
| key | string | :heavy_check_mark: | Ключ правила |
|
|
|
|
|
|
|
|
| value | string | :heavy_check_mark: | Значение правила |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока tags args
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
|
|
|
| -------- | ------ | ------------------ | ------------- |
|
|
|
|
|
|
|
|
| key | string | :heavy_check_mark: | Ключ тэга |
|
|
|
|
|
|
|
|
| val | string | :heavy_check_mark: | Значение тэга |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока port_forwarding args
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
|
|
|
| ----------------- | ------ | ------------------ | ------------------------------------------------------------------ |
|
|
|
|
|
|
|
|
| public_port_start | int | :heavy_check_mark: | Начало диапазона внешних портов для данного правила pfw |
|
|
|
|
|
|
|
|
| public_port_end | int | :x: | Конец диапазона внешних портов для данного правила pfw |
|
|
|
|
|
|
|
|
| local_port | int | :heavy_check_mark: | Локальный порт для данного правила pfw |
|
|
|
|
|
|
|
|
| proto | string | :heavy_check_mark: | Протокол создания правила pfw. Возможные значения: "tcp" или "udp" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока user_access args
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
|
|
|
| ----------- | ------ | ------------------ | -------------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
| username | string | :heavy_check_mark: | Юзер, которому необходимо выдать определенные права на компьют |
|
|
|
|
|
|
|
|
| access_type | string | :heavy_check_mark: | Права, которые выдадутся юзеру на компьют. Возможные значения: "R", "RCX" или "ARCXDU" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока snapshot args
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
|
|
|
| -------- | ------ | ------------------ | -------------- |
|
|
|
|
|
|
|
|
| label | string | :heavy_check_mark: | Лейбл снапшота |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока rollback args
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
|
|
|
| -------- | ------ | ------------------ | ------------------------------------------------ |
|
|
|
|
|
|
|
|
| label | string | :heavy_check_mark: | Лейбл снапшота на который нужно сделать rollback |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока cd args
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
|
|
|
| -------- | --- | ------------------ | -------------------------------- |
|
|
|
|
|
|
|
|
| cdrom_id | int | :heavy_check_mark: | Идентификатор образа cdrom диска |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Возвращаемые значения
|
|
|
|
|
|
|
|
В случае успешного выполнения _resource_ функция **decort_cb_kvmvm** возвращает в указанную при вызове переменную следующие значения:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
|
|
|
| --- |---------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
|
|
|
|
|
|
| account_id | int | Уникальный идентификатор подписчика-владельца ("account") данной виртуальной машины. |
|
|
|
|
|
|
|
|
| account_name | string | Имя подписчика, которому принадлежит данная виртуальная машина. |
|
|
|
|
|
|
|
|
| acl | []Struct [см. ниже](#описание-структуры-acl) | Cписок Acces Control |
|
|
|
|
|
|
|
|
| affinity_label | string | Лейбл аффинити |
|
|
|
|
|
|
|
|
| affinity_rules | []Struct [см. ниже](#описание-структуры-affinity-rules) | Правила аффинити для компьютов |
|
|
|
|
|
|
|
|
| affinity_weight | int | weight аффинити |
|
|
|
|
|
|
|
|
| anti_affinity_rules | []Struct [см. ниже](#описание-структуры-affinity-rules) | Правила анти аффинити для компьютов |
|
|
|
|
|
|
|
|
| arch | string | Архитектура |
|
|
|
|
|
|
|
|
| boot_order | []string | Boot order |
|
|
|
|
|
|
|
|
|cd_image_id| int | cd image id |
|
|
|
|
|
|
|
|
| clone_reference | int | кол-во клонов |
|
|
|
|
|
|
|
|
| clones | []int | id клонов |
|
|
|
|
|
|
|
|
| compute_id | int | Идентификатор экземпляра _compute_, соответствующего данной виртуальной машине. |
|
|
|
|
|
|
|
|
| computeci_id | int | ID вычислительного ресурса |
|
|
|
|
|
|
|
|
| cpu | int | Количество виртуальных CPU, выделенных данному серверу. |
|
|
|
|
|
|
|
|
| created_by | string | Кем создан _compute_ |
|
|
|
|
|
|
|
|
| created_time | int | Время создания _compute_ |
|
|
|
|
|
|
|
|
| custom_fields | string | Кастомные поля |
|
|
|
|
|
|
|
|
| deleted_by | string | Кем удален _compute_ |
|
|
|
|
|
|
|
|
| deleted_time | int | Время удаления _compute_ |
|
|
|
|
|
|
|
|
| description | string | Текстовое описание виртуальной машины. |
|
|
|
|
|
|
|
|
| devices | string | Девайсы |
|
|
|
|
|
|
|
|
| disks | []Struct [см. ниже](#описание-структуры-disks) | информация о дисках компьюта |
|
|
|
|
|
|
|
|
| driver | string | Аппаратная архитектура данной виртуальной машины. |
|
|
|
|
|
|
|
|
| gid | int | GRID ID |
|
|
|
|
|
|
|
|
| guid | int | ID ресурса |
|
|
|
|
|
|
|
|
| image_id | int | Идентификатор образа ОС, на базе которого создан загрузочный диск этой виртуальной машины. |
|
|
|
|
|
|
|
|
| interfaces | []Struct [см. ниже](#описание-структуры-interfaces) | Информация о интерфейсах компьюта |
|
|
|
|
|
|
|
|
| lock_status | string | Статус доступности |
|
|
|
|
|
|
|
|
| manager_id | int | Manager id |
|
|
|
|
|
|
|
|
| manager_type | string | Type manager |
|
|
|
|
|
|
|
|
| migrationjob | int | Migrationjob |
|
|
|
|
|
|
|
|
| milestones | int | Вехи |
|
|
|
|
|
|
|
|
| name | string | Имя компьюта |
|
|
|
|
|
|
|
|
| need_reboot | bool | Флаг перезапуска |
|
|
|
|
|
|
|
|
| os_users | []Struct [см. ниже](#описание-структуры-os-users) | Имена и пароли пользователей гостевой ОС, установленные платформой при создании виртуального сервера. |
|
|
|
|
|
|
|
|
| pinned | bool | добавлен ли компьют на стек |
|
|
|
|
|
|
|
|
| ram | int | Объём оперативной памяти в МБ, выделенной этой виртуальной машине. |
|
|
|
|
|
|
|
|
| reference_id | string | ID ссылки |
|
|
|
|
|
|
|
|
| registered | bool | Компьют зарегестрирован |
|
|
|
|
|
|
|
|
| res_name | string | Наименование ресурса |
|
|
|
|
|
|
|
|
| rg_id | int | Идентификатор ресурсной группы, к которой принадлежит виртуальная машина. |
|
|
|
|
|
|
|
|
| rg_name | string | Имя ресурсной группы, к которой принадлежит виртуальная машина. |
|
|
|
|
|
|
|
|
| snap_sets | []Struct [см. ниже](#описание-структуры-snap-sets) | Snap sets |
|
|
|
|
|
|
|
|
| stack_id | int | id стэка |
|
|
|
|
|
|
|
|
| stack_name | string | Название стэка |
|
|
|
|
|
|
|
|
| stateless_sep_id | int | ID сеп |
|
|
|
|
|
|
|
|
| stateless_sep_type | string | Тип сеп |
|
|
|
|
|
|
|
|
| status | string | Статус компьюта |
|
|
|
|
|
|
|
|
| tags | []Struct [см. ниже](#описание-структуры-tags) | Тэги |
|
|
|
|
|
|
|
|
| tech_status | string | Технический статус компьюта в составе группы |
|
|
|
|
|
|
|
|
| updated_by | string | Кем компьют был обновлен |
|
|
|
|
|
|
|
|
| updated_time | int | Время последнего обновления |
|
|
|
|
|
|
|
|
| user_managed | bool | Флаг, показывает управление пользователем вычислительной мощностью |
|
|
|
|
|
|
|
|
| vgpus | []int | Список vgpu |
|
|
|
|
|
|
|
|
| virtual_image_id | int | ID виртуального образа |
|
|
|
|
|
|
|
|
| boot_disk_id | int | Идентификатор загрузочного диска виртуальной машины. |
|
|
|
|
|
|
|
|
| boot_disk_size | int | Размер загрузочного диска в ГБ. |
|
|
|
|
|
|
|
|
| sep_id | int | ID sep |
|
|
|
|
|
|
|
|
| pool | string | Pool |
|
|
|
|
|
|
|
|
| extra_disks | []int | Список идентификаторов дополнительных дисков, которые подключены к данной виртуальной машине помимо загрузочного диска. Если такие диски отсутствуют, то список будет пустым. |
|
|
|
|
|
|
|
|
| network | []Struct [см. ниже](#описание-структуры-network) | Характеристики сетевых сегментов, к которым подключен данный сервер. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры network
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
|
|
| net_id | int | ID сети |
|
|
|
|
|
|
|
|
| net_type | string | Тип сети |
|
|
|
|
|
|
|
|
| ip_address | string | IP адрес |
|
|
|
|
|
|
|
|
| mac | string | MAC адрес |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры os users
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
|
|
| guid | string | GUID |
|
|
|
|
|
|
|
|
| login | string | Логин |
|
|
|
|
|
|
|
|
| password | string | Пароль |
|
|
|
|
|
|
|
|
| public_key | string | Публичный ssh ключ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры tags
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
|
|
| key | string | Ключ тэга |
|
|
|
|
|
|
|
|
| val | string | Значение тэга |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры snap sets
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
|
|
| disks | []int | Список id дисков |
|
|
|
|
|
|
|
|
| guid | string | GUID |
|
|
|
|
|
|
|
|
| label | string | Лейбл |
|
|
|
|
|
|
|
|
| timestamp | int | Время |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры interfaces
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
|
|
| conn_id | int | ID connect |
|
|
|
|
|
|
|
|
| conn_type | string | Тип connect |
|
|
|
|
|
|
|
|
| def_gw | string | Шлюз по умолчанию |
|
|
|
|
|
|
|
|
| flip_group_id | int | id flip group |
|
|
|
|
|
|
|
|
| guid | string | GUID |
|
|
|
|
|
|
|
|
| ip_address | string | IP адрес |
|
|
|
|
|
|
|
|
| listen_ssh | bool | открыт ли ssh connect |
|
|
|
|
|
|
|
|
| mac | string | MAC адрес устройства |
|
|
|
|
|
|
|
|
| name | string | Имя |
|
|
|
|
|
|
|
|
| net_id | int | ID сети |
|
|
|
|
|
|
|
|
| netmask | int | Маска сети |
|
|
|
|
|
|
|
|
| net_type | string | Тип сети |
|
|
|
|
|
|
|
|
| pci_slot | int | Pci Slot |
|
|
|
|
|
|
|
|
| qos | []Struct{}[см. ниже](#описание-структуры-qos)| QOS |
|
|
|
|
|
|
|
|
| target | string | Цель сети |
|
|
|
|
|
|
|
|
| type | string | Тип |
|
|
|
|
|
|
|
|
| vnfs | []int | VNFS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры qos
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
|
|
| e_rate | int | E rate |
|
|
|
|
|
|
|
|
| guid | string | ID ресурса |
|
|
|
|
|
|
|
|
| in_brust | int | In brust |
|
|
|
|
|
|
|
|
| in_rate | int | In rate |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры acl
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
|
|
| explicit | bool | Явно ли указан доступ |
|
|
|
|
|
|
|
|
| guid | string | guid Ресурса |
|
|
|
|
|
|
|
|
| right | string | Права на ресурс |
|
|
|
|
|
|
|
|
| status | string | Статус ресурса |
|
|
|
|
|
|
|
|
| type | string | Тип ресурса |
|
|
|
|
|
|
|
|
| user_group_id | string | ID user group |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры affinity rules
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
|
|
| guid | string | guid |
|
|
|
|
|
|
|
|
| key | string | Ключ |
|
|
|
|
|
|
|
|
| mode | string | Режим сравнения |
|
|
|
|
|
|
|
|
| policy | string | Степень "строгости" этого правила |
|
|
|
|
|
|
|
|
| topology | string | Топология |
|
|
|
|
|
|
|
|
| value | string | Значение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры disks
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
|
|
| pool | string | Имя пула в системе хранения, на ресурсах которой размещён данный диск |
|
|
|
|
|
|
|
|
| sep_id | int | Идентификатор Storage Endpoint Provider (SEP). SEP это способ идентифицировать конкретную систему хранения, на ресурсах которой размещён данный диск |
|
|
|
|
|
|
|
|
| size | int | Размер диска в ГБ |
|
|
|
|
|
|
|
|
| disk_type | string | Тип диска с точки зрения его роли в составе _compute_. Может принимать одно из фиксированных значений:<br/>"B" - признак загрузочного диска ("boot").<br/>"D" - признак дополнительного диска ("data") |
|
|
|
|
|
|
|
|
| disk_name | string | Наименование диска |
|
|
|
|
|
|
|
|
| desc | string | Описание |
|
|
|
|
|
|
|
|
| image_id | int | ID образа |
|
|
|
|
|
|
|
|
| disk_id | int | ID диска |
|
|
|
|
|
|
|
|
| shareable | bool | Флаг, отвечающий за доступность диска дургим ресурсам |
|
|
|
|
|
|
|
|
| size_max | int | Максимальный размер диска |
|
|
|
|
|
|
|
|
| size_used | int | Кол-во используемого места, в ГБ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры snapshots
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
|
|
| guid | string | id снимка |
|
|
|
|
|
|
|
|
| label | string | Наименование снимка |
|
|
|
|
|
|
|
|
| res_id | string | Ссылка на снимок |
|
|
|
|
|
|
|
|
| snap_set_guid | string | Установленный id снимка |
|
|
|
|
|
|
|
|
| snap_set_time | int | Установленное время снимка |
|
|
|
|
|
|
|
|
| timestamp | int | Время снимка |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Пример использования
|
|
|
|
|
|
|
|
В нижеприведённом примере с помощью _resource_ функции **decort_cb_kvmvm** создаётся виртуальная машина (экземпляр _compute_ в терминологии платформы DECORT) следующими характеристиками:
|
|
|
|
|
|
|
|
* Имя виртуальной машины - "tf-managed-vm"
|
|
|
|
|
|
|
|
* Характеристики виртуальной машины - 1 CPU, 1024Мб RAM, размер загрузочного диска 10Гб
|
|
|
|
|
|
|
|
* К виртуальной машине будет подключён один дополнительный диск с идентификатором 56789
|
|
|
|
|
|
|
|
* Идентификатор ресурсной группы, в которой создаётся виртуальная машина - поступает из переменной _decort_cb_rg.my_rg.id_
|
|
|
|
|
|
|
|
* Идентификатор образа ОС, который будет установлен на загрузочный диск - поступает из переменной _data.decort_cb_image.os_image.id_
|
|
|
|
|
|
|
|
* Виртуальная машина будет иметь одно сетевое подключение - во внешнюю сеть с идентификатором 12, IP адрес этого подключения платформа установит автоматически
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```terraform
|
|
|
|
|
|
|
|
resource "decort_cb_kvmvm" "my_new_vm" {
|
|
|
|
|
|
|
|
name = "tf-managed-vm"
|
|
|
|
|
|
|
|
rg_id = decort_resgroup.my_rg.id
|
|
|
|
|
|
|
|
driver = "KVM_X86" # "KVM_PPC" for IBM Power or "KVM_X86" for Intel
|
|
|
|
|
|
|
|
cpu = 1 # CPU count
|
|
|
|
|
|
|
|
ram = 1024 # RAM size in MB, must be even number, ideally a power of 2
|
|
|
|
|
|
|
|
image_id = data.decort_cb_image.os_image.id
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
boot_disk_size = 10 # Boot disk size in GB
|
|
|
|
|
|
|
|
#sep_id = 1 #ID сепа для boot диска
|
|
|
|
|
|
|
|
#pool = "data02" #Название пула
|
|
|
|
|
|
|
|
#cloud_init = file("initconfig.tftpl") #конфигурация cloud init
|
|
|
|
|
|
|
|
#description = "Test KVM VM Compute managed by Terraform"
|
|
|
|
|
|
|
|
#stack_id = 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
#Создание и добавление диска для compute
|
|
|
|
|
|
|
|
disks {
|
|
|
|
|
|
|
|
disk_name = "disk_name"
|
|
|
|
|
|
|
|
size = 5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#disk_type = "D"
|
|
|
|
|
|
|
|
#sep_id = 1
|
|
|
|
|
|
|
|
#pool = "data01"
|
|
|
|
|
|
|
|
#desc = ""
|
|
|
|
|
|
|
|
#image_id = 378
|
|
|
|
|
|
|
|
#permanently = false
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
#правила affinity
|
|
|
|
|
|
|
|
affinity_rules {
|
|
|
|
|
|
|
|
topology = "compute"
|
|
|
|
|
|
|
|
policy = "RECOMMENDED"
|
|
|
|
|
|
|
|
mode = "ANY" #возможные значения - ANY, EQ, NE
|
|
|
|
|
|
|
|
key = "testkey"
|
|
|
|
|
|
|
|
value = "testvalue"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
#правила anti-affinity
|
|
|
|
|
|
|
|
anti_affinity_rules {
|
|
|
|
|
|
|
|
topology = "compute"
|
|
|
|
|
|
|
|
policy = "RECOMMENDED"
|
|
|
|
|
|
|
|
mode = "ANY" #возможные значения - ANY, EQ, NE
|
|
|
|
|
|
|
|
key = "testkey"
|
|
|
|
|
|
|
|
value = "testvalue"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#affinity_label = "test4"
|
|
|
|
|
|
|
|
#is=""
|
|
|
|
|
|
|
|
#ipa_type = ""
|
|
|
|
|
|
|
|
extra_disks = [ 56789 ]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#Присоеденения сетей и удаление сетей в компьюте
|
|
|
|
|
|
|
|
network {
|
|
|
|
|
|
|
|
net_type = "EXTNET"
|
|
|
|
|
|
|
|
net_id = 12
|
|
|
|
|
|
|
|
#ip_address = "127.0.0.1"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
#добавление и удаление тэгов
|
|
|
|
|
|
|
|
tags {
|
|
|
|
|
|
|
|
key = "key"
|
|
|
|
|
|
|
|
value = "value"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
#добавление и удаление port forwarding
|
|
|
|
|
|
|
|
port_forwarding {
|
|
|
|
|
|
|
|
public_port_start = 2023
|
|
|
|
|
|
|
|
local_port = 80
|
|
|
|
|
|
|
|
proto = "tcp"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#public_port_end = 2023
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
#предоставить/забрать пользователю доступ к компьюту
|
|
|
|
|
|
|
|
user_access {
|
|
|
|
|
|
|
|
username = "some@decs3o"
|
|
|
|
|
|
|
|
access_type = "ARCXDU"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
#Создать/удалить снапшот компьюта
|
|
|
|
|
|
|
|
snapshot {
|
|
|
|
|
|
|
|
label = "label1"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
#Rollback на нужный снапшот
|
|
|
|
|
|
|
|
rollback {
|
|
|
|
|
|
|
|
label = "label1"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
#Вставить/удалить СD rom
|
|
|
|
|
|
|
|
cd {
|
|
|
|
|
|
|
|
cdrom_id = 344
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pin_to_stack = true
|
|
|
|
|
|
|
|
#target_stack_id = 1
|
|
|
|
|
|
|
|
#force_pin = true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#enabled = true
|
|
|
|
|
|
|
|
#pause = true
|
|
|
|
|
|
|
|
#reset = true
|
|
|
|
|
|
|
|
#restore = true
|
|
|
|
|
|
|
|
#auto_start = true
|
|
|
|
|
|
|
|
#force_stop = true
|
|
|
|
|
|
|
|
#alt_boot_id = 1
|
|
|
|
|
|
|
|
#custom_fields = "dict"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#data_disks = "KEEP"
|
|
|
|
|
|
|
|
#started = true
|
|
|
|
|
|
|
|
#detach_disks = true
|
|
|
|
|
|
|
|
#permanently = false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#reason = "test"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Данный пример подразумевает, что ранее по тексту tf-файла :
|
|
|
|
|
|
|
|
* выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki/04.02-Инициализация-Terraform-провайдера-DECORT)).
|
|
|
|
|
|
|
|
* создан ресурс типа decort_resgroup (см. _resource_ функцию [decort_resgroup](https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki/07.01.02-Resource-функция-decort_resgroup-управление-ресурсными-группами)) и результат записан в переменную _decort_resgroup.my_rg_
|
|
|
|
|
|
|
|
* считана информация об образе ОС(см. _data_ функцию [decort_image](https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki/06.01.07-Data-функция-decort_image-получение-информации-об-образе)) и результат записан в переменную _decort_resgroup.os_image_
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
После успешного завершения такого вызова _resource_ функции **decort_cb_kvmvm** в переменной `decort_cb_kvmvm.my_new_vm` будут сохранены возвращаемые значения. В частности, для получения идентификатора виртуальной машины следует использовать конструкцию `decort_cb_kvmvm.my_new_vm.id`.
|