|
|
|
@ -1,393 +0,0 @@
|
|
|
|
|
_Resource_ функция **decort_kvmvm** служит для управления виртуальными машинами, создаваемыми в платформе DECORT на базе технологии виртуализации KVM.
|
|
|
|
|
|
|
|
|
|
## Изменения в версии 3.5.2
|
|
|
|
|
- Добавлен функционал, который позволяет изменять параметр size у диска в блоке disks и размер диска будет обновлен не только в стейте, но и на платформе
|
|
|
|
|
|
|
|
|
|
## Изменения в 3.5.0
|
|
|
|
|
- Обновлен блок disks, вывод в стейт сортируется
|
|
|
|
|
- Добавлен блок tags
|
|
|
|
|
- Добавлен блок port_forwarding
|
|
|
|
|
- Добавлен блок user_access
|
|
|
|
|
- Добавлен блок snapshot
|
|
|
|
|
- Добавлен блок rollback
|
|
|
|
|
- Добавлен блок cd
|
|
|
|
|
- Добавлено поле pin_to_stack
|
|
|
|
|
- Добавлено поле pause
|
|
|
|
|
- Добавлено поле reset
|
|
|
|
|
- Добавлена возможность сделать редеплой машины, при изменении поля image_id
|
|
|
|
|
- Добавлено поле data_disks, для редеплоя
|
|
|
|
|
- Добавлено поле auto_start, для редеплоя
|
|
|
|
|
- Добавлено поле force_stop, для редеплоя
|
|
|
|
|
- Добавлено возвращение не критичных ошибок при создании ресурса (warnings)
|
|
|
|
|
- Добавлена проверка на доступность входных параметров – rg_id, image_id, vins_id в блоке network. Проверка выполняется во время создания или обновления ресурса
|
|
|
|
|
|
|
|
|
|
## Изменения в 3.4.1
|
|
|
|
|
- Добавлено поле affinity_label
|
|
|
|
|
- Добавлены блоки affinity_rules
|
|
|
|
|
- Добавлены блоки anti_affinity_rules
|
|
|
|
|
|
|
|
|
|
## Изменения в 3.4.0
|
|
|
|
|
- В аргументы добавлено новое поле shareable
|
|
|
|
|
- В возвращаемые значения добавлено новое поле size_max в блок disks
|
|
|
|
|
- В возвращаемые значения добавлено новое поле size_used в блок disks
|
|
|
|
|
|
|
|
|
|
## Изменения в 3.2.2
|
|
|
|
|
Добавлена обработка статусов виртуальной машины.
|
|
|
|
|
Если статус __DELETED__, то при попытке изменения конфигурационного файла, машина будет автоматически восстановлена.
|
|
|
|
|
Если статус __DESTROYED__, то при попытке изменения конфигурационного файла, машина будет автоматически пересоздана.
|
|
|
|
|
Начиная с версии 3.2.2, в ресурсе kvmvm появляется опциональное поле `enabled`, которое принимает в себя булево значение. Поле отвечает за ручную регуляцию статуса доступности вычислительной машины, автоматическая регуляция так же имеется - восстановленная и вновь созданная виртуальная машине переводится в режим `enabled = true`.
|
|
|
|
|
|
|
|
|
|
## Изменения в 3.2.1
|
|
|
|
|
Начиная с версии 3.2.1, в ресурсе kvmvm имеется возможность задать конфигурацию сети, с которой будет происходить создание. Такой сетью является первый блок __network__ в конфигурационном файле, описывающем ресурс виртуальной машины. Все остальные блоки, если они были добавлены при создании ресурса, являются сетями, которые будут подключены с помощью вызова метода cloudapi/netAttach.
|
|
|
|
|
Если блоков __network__ не было задано при создании ресурса, то будет использован `net_type = NONE`
|
|
|
|
|
|
|
|
|
|
## Изменения в 3.2.0
|
|
|
|
|
Начиная с версии 3.2.0, в ресурсе kvmvm появился дополнительный блок - disks. Данный блок позволяет автоматически создавать диски и прикреплять их к виртуальной машине. Основные отличия от extra_disks заключаются в следующем:
|
|
|
|
|
- Диск автоматически создается, в extra_disks осуществляется присоединение уже созданных дисков.
|
|
|
|
|
- Диск позволяет использовать системный образ для создания.
|
|
|
|
|
Блоков disks может быть 0 и более.
|
|
|
|
|
|
|
|
|
|
### Возможные затруднения при работе с блоком disks.
|
|
|
|
|
По умолчанию, sep_id и pool в платформе выбираются те же, на которых размещается загрузочный диск (создается вместе с виртуальной машиной). Из-за этого, могут возникать ошибки следующего характера:
|
|
|
|
|
- `Cannot add disk to Compute ID XXX: Pool xxxx does not support disk type X ` - данная ошибка означает то, что выбранный пул не поддерживает выбранные тип диска
|
|
|
|
|
Пути решения:
|
|
|
|
|
- Выполнить **decort_disk_list_types_detailed**. Результатом выполнения этой функции станет список доступных пулов хранилища вместе с их идентификаторами (sep_id).
|
|
|
|
|
- Заполнить поля sep_id и pool подходящими полями для диска.
|
|
|
|
|
- При удалении не последнего блока в списке, перед подтверждением Terraform не правильно отображает диск, который будет удаляться. На самом деле из состояние будет удален тот диск, который был убран из файла. Также будет нужен дополнительное выполнение terraform apply для того чтобы все блоки сейта терраформа встали на свои места и не отличались от настоящего состояния ресурса
|
|
|
|
|
|
|
|
|
|
## Аргументы
|
|
|
|
|
_Resource_ функция **decort_kvmvm** принимает следующие аргументы:
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| driver | string | :heavy_check_mark: | Аппаратная архитектура виртуальной машины.<br/>Может принимать одно из следующих значений:<br/> * "KVM_X86" - виртуальная машина KVM на аппаратной платформе x86.<br/> * "KVM_PPC" - виртуальная машина KVM на аппаратной платформе IBM Power. |
|
|
|
|
|
| cpu | int | :heavy_check_mark: | Количество процессоров. |
|
|
|
|
|
| name | string | :heavy_check_mark: | Имя виртуальной машины. Обратите внимание, что имя должно быть уникальным в рамках ресурсной группы. |
|
|
|
|
|
| rg_id | int | :heavy_check_mark: | Идентификатор ресурсной группы, которой принадлежит данная виртуальная машина. |
|
|
|
|
|
| ram | int | :heavy_check_mark: | Объём оперативной памяти в МБ.<br/> |
|
|
|
|
|
| image_id | int | :heavy_check_mark: | Идентификатор образа, на базе которого создаётся загрузочный диск виртуальной машины.<br/> |
|
|
|
|
|
| boot_disk_size | int | :heavy_check_mark: | Размер загрузочного диска виртуальной машины в ГБ. |
|
|
|
|
|
| extra_disks | []int | :x: | Список идентификаторов дополнительных дисков, которые требуется подключить к данной виртуальной машине помимо загрузочного диска. |
|
|
|
|
|
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. |
|
|
|
|
|
| network | []Struct [см. ниже](#описание-блока-network) | :x: | Параметры сетевого подключения. Если нужно сконфигурировать несколько сетевых подключений, данный блок можно задавать многократно - по одному на каждое подключение.|
|
|
|
|
|
| description | string | :x: | Текстовое описание виртуальной машины. |
|
|
|
|
|
| started | bool | :x: | Флаг запуска машины,<br/>по-умолчанию - true.<br/>Если true - машина включена,<br/>если false - выключена. |
|
|
|
|
|
| sep_id | int | :x: | Идентификатор sep |
|
|
|
|
|
| pool | string | :x: | Наименование пула для размещения |
|
|
|
|
|
| is | string | :x: | Наименование системы |
|
|
|
|
|
| ipa_type | string | :x: | Тип аутентификатора |
|
|
|
|
|
| permanently | bool | :x: | Мгновенное удаление виртуальной машины, минуя корзину. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
|
| detach_disks | bool | :x: | Отсоединение прикрепленных к виртуальной машине дисков перед ее удалением. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
|
| disks | []Struct [см. ниже](#описание-блока-disks)| :x: | Описание диска. Таких может быть любое кол-во, либо не быть вообще |
|
|
|
|
|
| enabled | bool | :x: | Доступность вычислительной машины |
|
|
|
|
|
| affinity_label | string | :x: | Метка для правил affinity |
|
|
|
|
|
| affinity_rules | []Struct [см. ниже](#описание-блока-affinity_rules) | :x: | Блок описания правил affinity. Блоков может быть несколько, один или отсутствовать. |
|
|
|
|
|
| anti_affinity_rules | []Struct [см. ниже](#описание-блока-anti_affinity_rules) | :x: | Блок описания правил anti-affinity. Блоков может быть несколько, один или отсутствовать. |
|
|
|
|
|
| tags | []Struct [см. ниже](#описание-блока-tags) | :x: | Задание тэгов компьюта |
|
|
|
|
|
| port_forwarding | []Struct [см. ниже](#описание-блока-port_forwarding) | :x: | Настройка порт форвардинга для компьюта |
|
|
|
|
|
| user_access | []Struct [см. ниже](#описание-блока-user_access) | :x: | Предоставление доступов к компьюту |
|
|
|
|
|
| snapshot | []Struct [см. ниже](#описание-блока-snapshot) | :x: | Создание мнапшотов |
|
|
|
|
|
| rollback | []Struct [см. ниже](#описание-блока-rollback) | :x: | Rollback на определенный снапшот |
|
|
|
|
|
| cd | []Struct [см. ниже](#описание-блока-cd) | :x: | Добавление диска cd rom |
|
|
|
|
|
| pin_to_stack | bool | :x: | Флаг, отвечающий за добавление кмпьюта в стэк |
|
|
|
|
|
| pause | bool | :x: | Флаг, отвкчающий за pause/resume компьюта |
|
|
|
|
|
| reset | bool | :x: | Флаг, отвкчающий за reset компьюта |
|
|
|
|
|
| auto_start | bool | :x: | Флаг, отвечающий за авто старт при редеплое компьюта |
|
|
|
|
|
| force_stop | bool | :x: | Флаг, отвечающий за стоп при редеплое компьюта |
|
|
|
|
|
| data_disks | string | :x: | Указание того, что делать с дисками при редеплое. Возможные значения: "KEEP", "DETACH" и "DESTROY" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока disks
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| 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
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| 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 адрес, выделенный данному подключению. |
|
|
|
|
|
|
|
|
|
|
### Описание блока affinity_rules
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| 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
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| 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
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| key | string | :heavy_check_mark: | Ключ тэга |
|
|
|
|
|
| val | string | :heavy_check_mark: | Значение тэга |
|
|
|
|
|
|
|
|
|
|
### Описание блока port_forwarding
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| 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
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| username | string | :heavy_check_mark: | Юзер, которому необходимо выдать определенные права на компьют |
|
|
|
|
|
| access_type | string |:heavy_check_mark: | Права, которые выдадутся юзеру на компьют. Возможные значения: "R", "RCX" или "ARCXDU" |
|
|
|
|
|
|
|
|
|
|
### Описание блока snapshot
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| label | string | :heavy_check_mark: | Лейбл снапшота |
|
|
|
|
|
|
|
|
|
|
### Описание блока rollback
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| label | string | :heavy_check_mark: | Лейбл снапшота на который нужно сделать rollback |
|
|
|
|
|
|
|
|
|
|
### Описание блока cd
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
|
| --- | --- | --- | --- |
|
|
|
|
|
| cdrom_id | int | :heavy_check_mark: | Идентификатор образа cdrom диска |
|
|
|
|
|
|
|
|
|
|
## Возвращаемые значения
|
|
|
|
|
В случае успешного выполнения _resource_ функция **decort_kvmvm** возвращает в указанную при вызове переменную следующие значения:
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| account_id | int | Уникальный идентификатор подписчика-владельца ("account") данной виртуальной машины. |
|
|
|
|
|
| account_name | string | Имя подписчика, которому принадлежит данная виртуальная машина. |
|
|
|
|
|
| affinity_label | string | Метка для правил affinity |
|
|
|
|
|
| affinity_weight | int | weight аффинити |
|
|
|
|
|
| arch | string | Архитектура |
|
|
|
|
|
| boot_order | []string | Boot order |
|
|
|
|
|
| boot_disk | []Struct [см. ниже](#описание-структуры-boot_disk) | Полная информация о бутдиске |
|
|
|
|
|
| boot_disk_id | int | Идентификатор загрузочного диска виртуальной машины. |
|
|
|
|
|
| boot_disk_size | int | Размер загрузочного диска в ГБ. |
|
|
|
|
|
| driver | string | Аппаратная архитектура данной виртуальной машины. |
|
|
|
|
|
| disks | [см. ниже](#описание-блока-disks) | Описание диска. Таких может быть любое кол-во, либо не быть вообще |
|
|
|
|
|
| clone_reference | int | кол-во клонов |
|
|
|
|
|
| clones | []int | id клонов |
|
|
|
|
|
| computeci_id | int | Id computeci |
|
|
|
|
|
| cpu | int | Количество виртуальных CPU, выделенных данному серверу. |
|
|
|
|
|
| created_by | string | Кем создан ресурс |
|
|
|
|
|
| created_time | int | Время создания ресурса |
|
|
|
|
|
| custom_fields | []Struct [см. ниже](#описание-структуры-custom-fields) | Кастомные поля |
|
|
|
|
|
| deleted_by | string | Кем удален ресурс |
|
|
|
|
|
| deleted_time | int | Время удаления ресурса |
|
|
|
|
|
| description | string | Текстовое описание виртуальной машины. |
|
|
|
|
|
| detach_disks | bool | Отсоединение прикрепленных к виртуальной машине дисков перед ее удалением. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
|
| devices | string | Девайсы |
|
|
|
|
|
| enabled | bool | Доступность вычислительной машины |
|
|
|
|
|
| extra_disks | list of ints | Список идентификаторов дополнительных дисков, которые подключены к данной виртуальной машине помимо загрузочного диска. Если такие диски отсутствуют, то список будет пустым. |
|
|
|
|
|
| gid | int | GID |
|
|
|
|
|
| guid | int | GUID |
|
|
|
|
|
| compute_id | int | Идентификатор экземпляра _compute_, соответствующего данной виртуальной машине. |
|
|
|
|
|
| id | int | Уникальный идентификатор этой виртуальной машины в облачной платформе. Всегда совпадает с `compute_id`. |
|
|
|
|
|
| image_id | int | Идентификатор образа ОС, на базе которого создан загрузочный диск этой виртуальной машины. |
|
|
|
|
|
| interfaces | []Struct [см. ниже](#описание-структуры-interfaces) | Информация о интерфейсах компьюта |
|
|
|
|
|
| ipa_type | string | Тип аутентификатора |
|
|
|
|
|
| is | string | Наименование системы |
|
|
|
|
|
| lock_status | string | Статус доступности |
|
|
|
|
|
| manager_id | int | Manager id |
|
|
|
|
|
| manager_type | string | Type manager |
|
|
|
|
|
| migrationjob | int | Migrationjob |
|
|
|
|
|
| milestones | int | Вехи |
|
|
|
|
|
| name | string | Имя виртуального сервера.<br>Возвращаемое значение `name` совпадает со значением соответствующего аргумента, переданного при вызове функции. |
|
|
|
|
|
| natable_vins_id | int | NAT vins id |
|
|
|
|
|
| natable_vins_ip | string | NAT vins ip |
|
|
|
|
|
| natable_vins_name | string | NAT vins name |
|
|
|
|
|
| natable_vins_network | string | NAT vins network |
|
|
|
|
|
| natable_vins_network_name | string | NAT vins network name |
|
|
|
|
|
| network | list of dicts | Характеристики сетевых сегментов, к которым подключен данный сервер. Формат структуры:<br/>* (string) `net_type` - тип сети, соответствующей данному подключению. "EXTNET" в случае прямого подключения во внешнюю сеть, "VINS" в случае подключения к Virtual Network Segment.<br/>* (int) `net_id` - идентификатор соответствующего сетевого сегмента: внешней сети в случае `net_type = "EXTNET"` и ViNS в случае `net_type = "VINS"`<br/>* (string) `ip_address` - IP адрес, выделенный данному подключению.<br/>* (string) `mac` - MAC адрес, назначенный соответствующему сетевому интерфейсу виртуальной машины. |
|
|
|
|
|
| os_users | []Struct [см. ниже](#описание-структуры-os-users) | Имена и пароли пользователей гостевой ОС, установленные платформой при создании виртуального сервера. Формат структуры:<br/>* (string) `login` - учётная запись в гостевой ОС.<br/>* (string) `password` - пароль к этой учётной записи. |
|
|
|
|
|
| permanently | bool | Мгновенное удаление виртуальной машины, минуя корзину. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
|
| pinned | bool | добавлен ли компьют на стек |
|
|
|
|
|
| pool | string | Наименование пула для размещения |
|
|
|
|
|
| ram | int | Объём оперативной памяти в МБ, выделенной этой виртуальной машине. |
|
|
|
|
|
| reference_id | string | ID reference |
|
|
|
|
|
| registered | bool | Компьют зарегестрирован |
|
|
|
|
|
| res_name | string | Res name |
|
|
|
|
|
| reset | bool | Флаг отвкчающий за reset компьюта |
|
|
|
|
|
| rg_id | int| Идентификатор ресурсной группы, к которой принадлежит виртуальная машина. |
|
|
|
|
|
| rg_name | string | Имя ресурсной группы, к которой принадлежит виртуальная машина. |
|
|
|
|
|
| sep_id | int | Идентификатор sep |
|
|
|
|
|
| snap_sets | []Struct [см. ниже](#описание-структуры-snap-sets) | Snap sets |
|
|
|
|
|
| started | bool | Опциональный параметр, флаг запуска машины,<br/>по-умолчанию - true.<br/>Если true - машина включена,<br/>если false - выключена. |
|
|
|
|
|
| stateless_sep_id | int | ID сепа |
|
|
|
|
|
| stateless_sep_type | string | Тип сепа |
|
|
|
|
|
| status | string | Cтатус |
|
|
|
|
|
| tech_status | string | Технический статус |
|
|
|
|
|
| updated_by | string | Кем обновлен ресурс |
|
|
|
|
|
| updated_time | int | Время обновления ресурса |
|
|
|
|
|
| user_managed | bool | User managed |
|
|
|
|
|
| cloud_init | string | Параметры cloud_init |
|
|
|
|
|
| vgpus | []int| Список vgpu |
|
|
|
|
|
| virtual_image_id | int | ID виртуального образа |
|
|
|
|
|
| virtual_image_name | string | Имя образа ОС, на базе которого создан загрузочный диск этой виртуальной машины. |
|
|
|
|
|
|
|
|
|
|
### Описание структуры custom fields
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| key | string | Ключ |
|
|
|
|
|
| val | string | Значение |
|
|
|
|
|
|
|
|
|
|
### Описание структуры 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 |
|
|
|
|
|
|
|
|
|
|
### Описание структуры os users
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| guid | string | GUID |
|
|
|
|
|
| login | string | Логин |
|
|
|
|
|
| password | string | Пароль |
|
|
|
|
|
| public_key | string | Публичный ssh ключ |
|
|
|
|
|
|
|
|
|
|
### Описание структуры snap sets
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| disks | []int | Список id дисков |
|
|
|
|
|
| guid | string | GUID |
|
|
|
|
|
| label | string | Лейбл |
|
|
|
|
|
| timestamp | int | Время |
|
|
|
|
|
|
|
|
|
|
### Описание структуры boot_disk
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| desc | string | Описание диска |
|
|
|
|
|
| disk_id | int | ID диска |
|
|
|
|
|
| disk_name | string | Наименование диска |
|
|
|
|
|
| disk_type | string | Тип диска (B) |
|
|
|
|
|
| image_id | int | ID образа диска |
|
|
|
|
|
| pool | string | Наименование пула |
|
|
|
|
|
| sep_id | int | Storage Endpoint ID |
|
|
|
|
|
| shareable | bool | Доступность другим ресурсам |
|
|
|
|
|
| size | int | Размер диска |
|
|
|
|
|
| size_max | int | Максимальный размер диска |
|
|
|
|
|
| size_used | float | Используемый размер |
|
|
|
|
|
|
|
|
|
|
### Описание блока disks
|
|
|
|
|
| Аргумент | Тип | Описание |
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
| disk_id | int | ID диска |
|
|
|
|
|
| disk_name | string | Наименование диска |
|
|
|
|
|
| size | int | Размер диска, GB |
|
|
|
|
|
| disk_type | string | Тип диска. Возможные значения: "D" - диск с данными, "B" - загрузочный диск |
|
|
|
|
|
| sep_id | int | ID storage endpoint |
|
|
|
|
|
| shareable | bool | Флаг, отвечающий за доступность диска дургим ресурсам |
|
|
|
|
|
| size_max | int | Размер диска |
|
|
|
|
|
| size_used | float | Размер занимаемого на диске места |
|
|
|
|
|
| pool | string | Наименование пула для размещения диска |
|
|
|
|
|
| desc | string | Описание диска |
|
|
|
|
|
| image_id | int | ID образа |
|
|
|
|
|
|
|
|
|
|
## Пример использования
|
|
|
|
|
В нижеприведённом примере с помощью _resource_ функции **decort_kvmvm** создаётся виртуальная машина (экземпляр _compute_ в терминологии платформы DECORT) следующими характеристиками:
|
|
|
|
|
* Имя виртуальной машины - "tf-managed-vm"
|
|
|
|
|
* Характеристики виртуальной машины - 1 CPU, 1024Мб RAM, размер загрузочного диска 10Гб
|
|
|
|
|
* К виртуальной машине будет подключён один дополнительный диск с идентификатором 56789
|
|
|
|
|
* Идентификатор ресурсной группы, в которой создаётся виртуальная машина - поступает из переменной _decort_resgroup.my_rg.id_
|
|
|
|
|
* Идентификатор образа ОС, который будет установлен на загрузочный диск - поступает из переменной _data.decort_image.os_image.id_
|
|
|
|
|
* Виртуальная машина будет иметь одно сетевое подключение - во внешнюю сеть с идентификатором 12, IP адрес этого подключения платформа установит автоматически
|
|
|
|
|
* Для виртуальной машины будет создан и автоматически подключен диск с именем "test_disk" и размером в 10 GB. Созданный диск будет иметь тип "D", размещен в pool "test_pool", в хранилище с идентификатором 3. Данный диск будет создан с системным образом, который имеет идентификатор 3456.
|
|
|
|
|
|
|
|
|
|
```terraform
|
|
|
|
|
resource "decort_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
|
|
|
|
|
boot_disk_size = 10 # Boot disk size in GB
|
|
|
|
|
extra_disks = [ 56789 ]
|
|
|
|
|
image_id = data.decort_image.os_image.id
|
|
|
|
|
description = "Test KVM VM Compute managed by Terraform"
|
|
|
|
|
|
|
|
|
|
network {
|
|
|
|
|
net_type = "EXTNET"
|
|
|
|
|
net_id = 12
|
|
|
|
|
}
|
|
|
|
|
disks {
|
|
|
|
|
disk_name = "test_disk"
|
|
|
|
|
size = 10
|
|
|
|
|
sep_id = 3
|
|
|
|
|
pool = "test_pool"
|
|
|
|
|
image_id = 3456
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
affinity_label = "test4"
|
|
|
|
|
|
|
|
|
|
affinity_rules {
|
|
|
|
|
topology = "compute"
|
|
|
|
|
policy = "RECOMMENDED"
|
|
|
|
|
mode = "ANY"
|
|
|
|
|
key = "testkey1"
|
|
|
|
|
value = "testvalue1"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
anti_affinity_rules {
|
|
|
|
|
topology = "compute"
|
|
|
|
|
policy = "RECOMMENDED"
|
|
|
|
|
mode = "ANY"
|
|
|
|
|
key = "testkey2"
|
|
|
|
|
value = "testvalue2"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#started = true
|
|
|
|
|
#enabled = true
|
|
|
|
|
#is=""
|
|
|
|
|
#ipa_type = ""
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Данный пример подразумевает, что ранее по тексту 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_kvmvm** в переменной `decort_kvmvm.my_new_vm` будут сохранены возвращаемые значения. В частности, для получения идентификатора виртуальной машины следует использовать конструкцию `decort_kvmvm.my_new_vm.id`.
|