|
|
@ -1,485 +1,484 @@
|
|
|
|
_Resource_ функция **decort_kvmvm** служит для управления виртуальными машинами, создаваемыми в платформе DECORT на базе технологии виртуализации KVM.
|
|
|
|
_Resource_ функция **decort_kvmvm** служит для управления виртуальными машинами, создаваемыми в платформе DECORT на базе технологии виртуализации KVM.
|
|
|
|
|
|
|
|
|
|
|
|
### Работа с custom_fields
|
|
|
|
### Работа с custom_fields
|
|
|
|
|
|
|
|
|
|
|
|
CustomFields - это новый метод работы с XML ВМ, пришедший на замену ComputeCI ачиная с версии провайдера 4.3.0.
|
|
|
|
CustomFields - это новый метод работы с XML ВМ, пришедший на замену ComputeCI ачиная с версии провайдера 4.3.0.
|
|
|
|
Для описания конфигурации используется файл в формате JSON, например:
|
|
|
|
Для описания конфигурации используется файл в формате JSON, например:
|
|
|
|
|
|
|
|
|
|
|
|
customfields.json:
|
|
|
|
customfields.json:
|
|
|
|
```
|
|
|
|
```
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"title": "test",
|
|
|
|
"title": "test",
|
|
|
|
"name": "basename",
|
|
|
|
"name": "basename",
|
|
|
|
"cpu": {
|
|
|
|
"cpu": {
|
|
|
|
"mode": "host-model"
|
|
|
|
"mode": "host-model"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
После этого, достаточно передать файл в качестве значения параметра:
|
|
|
|
После этого, достаточно передать файл в качестве значения параметра:
|
|
|
|
```
|
|
|
|
```
|
|
|
|
custom_fields = file("customfields.json")
|
|
|
|
custom_fields = file("customfields.json")
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Возможные затруднения при импорте kvmvm с extra_disks
|
|
|
|
### Возможные затруднения при импорте kvmvm с extra_disks
|
|
|
|
При импорте kvmvm c extra_disks, терраформ не может записать в стейт информацию об extra_disks по следующим причинам:
|
|
|
|
При импорте kvmvm c extra_disks, терраформ не может записать в стейт информацию об extra_disks по следующим причинам:
|
|
|
|
- терраформ на стадии импорта не производит чтение конфигурации, кроме проверки необходимых (requirement) полей, из-за чего данные, хранящиеся в поле extra_disks, будут непрочитаны;
|
|
|
|
- терраформ на стадии импорта не производит чтение конфигурации, кроме проверки необходимых (requirement) полей, из-за чего данные, хранящиеся в поле extra_disks, будут непрочитаны;
|
|
|
|
Из-за этого, при первом запуске команды `terraform apply`, терраформ сообщит что удалит эти диски из disks, но, при этом, удалены они не будут, если указаны в блоке extra_disks.
|
|
|
|
Из-за этого, при первом запуске команды `terraform apply`, терраформ сообщит что удалит эти диски из disks, но, при этом, удалены они не будут, если указаны в блоке extra_disks.
|
|
|
|
|
|
|
|
|
|
|
|
### Работа boot_disk
|
|
|
|
### Работа boot_disk
|
|
|
|
|
|
|
|
|
|
|
|
В стейт в поле boot_disk записывается первый найденный диск с типом "B", остальные диски с типом "B" обрабатываются и записываются в массив disks.
|
|
|
|
В стейт в поле boot_disk записывается первый найденный диск с типом "B", остальные диски с типом "B" обрабатываются и записываются в массив disks.
|
|
|
|
|
|
|
|
|
|
|
|
### Убраны deprecated поля
|
|
|
|
### Убраны deprecated поля
|
|
|
|
|
|
|
|
|
|
|
|
- network_id
|
|
|
|
- network_id
|
|
|
|
- network_type
|
|
|
|
- network_type
|
|
|
|
|
|
|
|
|
|
|
|
### Возможные затруднения при работе с блоком disks.
|
|
|
|
### Возможные затруднения при работе с блоком disks.
|
|
|
|
|
|
|
|
|
|
|
|
По умолчанию, sep_id и pool в платформе выбираются те же, на которых размещается загрузочный диск (создается вместе с виртуальной машиной). Из-за этого, могут возникать ошибки следующего характера:
|
|
|
|
По умолчанию, sep_id и pool в платформе выбираются те же, на которых размещается загрузочный диск (создается вместе с виртуальной машиной). Из-за этого, могут возникать ошибки следующего характера:
|
|
|
|
|
|
|
|
|
|
|
|
- `Cannot add disk to Compute ID XXX: Pool xxxx does not support disk type X ` - данная ошибка означает то, что выбранный пул не поддерживает выбранные тип диска
|
|
|
|
- `Cannot add disk to Compute ID XXX: Pool xxxx does not support disk type X ` - данная ошибка означает то, что выбранный пул не поддерживает выбранные тип диска
|
|
|
|
Пути решения:
|
|
|
|
Пути решения:
|
|
|
|
- Выполнить **decort_disk_list_types_detailed**. Результатом выполнения этой функции станет список доступных пулов хранилища вместе с их идентификаторами (sep_id).
|
|
|
|
- Выполнить **decort_disk_list_types_detailed**. Результатом выполнения этой функции станет список доступных пулов хранилища вместе с их идентификаторами (sep_id).
|
|
|
|
- Заполнить поля sep_id и pool подходящими полями для диска.
|
|
|
|
- Заполнить поля sep_id и pool подходящими полями для диска.
|
|
|
|
- При удалении не последнего блока в списке, перед подтверждением Terraform не правильно отображает диск, который будет удаляться. На самом деле из состояние будет удален тот диск, который был убран из файла. Также будет нужен дополнительное выполнение terraform apply для того чтобы все блоки сейта терраформа встали на свои места и не отличались от настоящего состояния ресурса
|
|
|
|
- При удалении не последнего блока в списке, перед подтверждением Terraform не правильно отображает диск, который будет удаляться. На самом деле из состояние будет удален тот диск, который был убран из файла. Также будет нужен дополнительное выполнение terraform apply для того чтобы все блоки сейта терраформа встали на свои места и не отличались от настоящего состояния ресурса
|
|
|
|
|
|
|
|
|
|
|
|
### Возможные затруднения при работе с сетями
|
|
|
|
### Возможные затруднения при работе с сетями
|
|
|
|
|
|
|
|
|
|
|
|
При работе и изменении сетей в компьюте необходимо предварительно остановить работу, добавив поле в ресурс%
|
|
|
|
При работе и изменении сетей в компьюте необходимо предварительно остановить работу, добавив поле в ресурс%
|
|
|
|
|
|
|
|
|
|
|
|
```terraform
|
|
|
|
```terraform
|
|
|
|
started = false
|
|
|
|
started = false
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
И выполнив команду:
|
|
|
|
И выполнив команду:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
```bash
|
|
|
|
terraform apply
|
|
|
|
terraform apply
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Что приведет к остановке машины.
|
|
|
|
Что приведет к остановке машины.
|
|
|
|
После выполнения работ, машину можно включить, изменив `started` на `true`.
|
|
|
|
После выполнения работ, машину можно включить, изменив `started` на `true`.
|
|
|
|
|
|
|
|
|
|
|
|
### Работа с cloud_init
|
|
|
|
### Работа с cloud_init
|
|
|
|
|
|
|
|
|
|
|
|
Cloud Init позволяет запустить ВМ с предустановленными настройками пользователя, группами и доступами. Подробнее про настройку cloud_init можно прочесть по [ссылке](https://cloudinit.readthedocs.io/en/latest/reference/examples.html).
|
|
|
|
Cloud Init позволяет запустить ВМ с предустановленными настройками пользователя, группами и доступами. Подробнее про настройку cloud_init можно прочесть по [ссылке](https://cloudinit.readthedocs.io/en/latest/reference/examples.html).
|
|
|
|
|
|
|
|
|
|
|
|
**Пароли, указанные в cloud_init не сохраняются на платформе и не отображаются в API!**
|
|
|
|
**Пароли, указанные в cloud_init не сохраняются на платформе и не отображаются в API!**
|
|
|
|
|
|
|
|
|
|
|
|
Для использования cloud_init конфигурации, следует:
|
|
|
|
Для использования cloud_init конфигурации, следует:
|
|
|
|
|
|
|
|
|
|
|
|
1. Создать файл с расширением `.tftpl` в рабочей директории.
|
|
|
|
1. Создать файл с расширением `.tftpl` в рабочей директории.
|
|
|
|
2. Описать в созданном файле конфигурацию cloud_init в формате JSON или YAML:
|
|
|
|
2. Описать в созданном файле конфигурацию cloud_init в формате JSON или YAML:
|
|
|
|
|
|
|
|
|
|
|
|
### initconfig.tftpl
|
|
|
|
### initconfig.tftpl
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"users": [
|
|
|
|
"users": [
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"groups": "users, wheel",
|
|
|
|
"groups": "users, wheel",
|
|
|
|
"name": "user",
|
|
|
|
"name": "user",
|
|
|
|
"plain_text_passwd": "examplePassword",
|
|
|
|
"plain_text_passwd": "examplePassword",
|
|
|
|
"primary_group": "user",
|
|
|
|
"primary_group": "user",
|
|
|
|
"ssh_authorized_keys": [
|
|
|
|
"ssh_authorized_keys": [
|
|
|
|
"ssh-rsa EXAMPLE%id_rsa.pub"
|
|
|
|
"ssh-rsa EXAMPLE%id_rsa.pub"
|
|
|
|
],
|
|
|
|
],
|
|
|
|
"sudo": "ALL=(ALL) NOPASSWD:ALL"
|
|
|
|
"sudo": "ALL=(ALL) NOPASSWD:ALL"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
3. Указать путь до файла `initconfig.tftpl` в качестве значения параметра `cloud_init` в ресурсе `decort_kvmvm`:
|
|
|
|
3. Указать путь до файла `initconfig.tftpl` в качестве значения параметра `cloud_init` в ресурсе `decort_kvmvm`:
|
|
|
|
|
|
|
|
|
|
|
|
```terraform
|
|
|
|
```terraform
|
|
|
|
resource "decort_kvmvm" "compute1" {
|
|
|
|
resource "decort_kvmvm" "compute1" {
|
|
|
|
# ...
|
|
|
|
# ...
|
|
|
|
|
|
|
|
|
|
|
|
cloud_init = file("initconfig.tftpl")
|
|
|
|
cloud_init = file("initconfig.tftpl")
|
|
|
|
|
|
|
|
|
|
|
|
# ...
|
|
|
|
# ...
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
4. Выполнить `terraform apply`
|
|
|
|
4. Выполнить `terraform apply`
|
|
|
|
|
|
|
|
|
|
|
|
**Конфигурация cloud_init применяется только при создании компьюта, во всех остальных случаях - игнорируется**
|
|
|
|
**Конфигурация cloud_init применяется только при создании компьюта, во всех остальных случаях - игнорируется**
|
|
|
|
|
|
|
|
|
|
|
|
## Аргументы
|
|
|
|
## Аргументы
|
|
|
|
|
|
|
|
|
|
|
|
_Resource_ функция **decort_kvmvm** принимает следующие аргументы:
|
|
|
|
_Resource_ функция **decort_kvmvm** принимает следующие аргументы:
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| ------------------- | -------------------------------------------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
|
|---------------------|----------------------------------------------------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
|
|
| driver | string | :heavy_check_mark: | Аппаратная архитектура виртуальной машины.<br/>Может принимать одно из следующих значений:<br/> _ "KVM_X86" - stateful виртуальная машина KVM на аппаратной платформе x86.<br/> _ "SVA_KVM_X86" - stateless ВМ на аппаратной платформе x86. <br/> \* "KVM_PPC" - виртуальная машина KVM на аппаратной платформе IBM Power. |
|
|
|
|
| driver | string | :heavy_check_mark: | Аппаратная архитектура виртуальной машины.<br/>Может принимать одно из следующих значений:<br/> _ "KVM_X86" - stateful виртуальная машина KVM на аппаратной платформе x86.<br/> _ "SVA_KVM_X86" - stateless ВМ на аппаратной платформе x86. <br/> \* "KVM_PPC" - виртуальная машина KVM на аппаратной платформе IBM Power. |
|
|
|
|
| cpu | int | :heavy_check_mark: | Количество процессоров. |
|
|
|
|
| cpu | int | :heavy_check_mark: | Количество процессоров. |
|
|
|
|
| name | string | :heavy_check_mark: | Имя виртуальной машины. Обратите внимание, что имя должно быть уникальным в рамках ресурсной группы. |
|
|
|
|
| name | string | :heavy_check_mark: | Имя виртуальной машины. Обратите внимание, что имя должно быть уникальным в рамках ресурсной группы. |
|
|
|
|
| rg_id | int | :heavy_check_mark: | Идентификатор ресурсной группы, которой принадлежит данная виртуальная машина. |
|
|
|
|
| rg_id | int | :heavy_check_mark: | Идентификатор ресурсной группы, которой принадлежит данная виртуальная машина. |
|
|
|
|
| ram | int | :heavy_check_mark: | Объём оперативной памяти в МБ.<br/> |
|
|
|
|
| ram | int | :heavy_check_mark: | Объём оперативной памяти в МБ.<br/> |
|
|
|
|
| image_id | int | :heavy_check_mark: | Идентификатор образа, на базе которого создаётся загрузочный диск виртуальной машины.<br/> |
|
|
|
|
| image_id | int | :heavy_check_mark: | Идентификатор образа, на базе которого создаётся загрузочный диск виртуальной машины.<br/> |
|
|
|
|
| boot_disk_size | int | :heavy_check_mark: | Размер загрузочного диска виртуальной машины в ГБ.
|
|
|
|
| boot_disk_size | int | :heavy_check_mark: | Размер загрузочного диска виртуальной машины в ГБ. |
|
|
|
|
| custom_fields | string (json-encoded) | :x: | Управление XML виртуальной машины
|
|
|
|
| custom_fields | string (json-encoded) | :x: | Управление XML виртуальной машины |
|
|
|
|
| extra_disks | []int | :x: | Список идентификаторов дополнительных дисков, которые требуется подключить к данной виртуальной машине помимо загрузочного диска. |
|
|
|
|
| extra_disks | []int | :x: | Список идентификаторов дополнительных дисков, которые требуется подключить к данной виртуальной машине помимо загрузочного диска. |
|
|
|
|
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. |
|
|
|
|
| cloud_init | string | :x: | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания. |
|
|
|
|
| with_default_vins | bool | :x: | При значении false ВМ создается без подключения стандартных ViNS ресурсной группы. При указании хотя бы одного блока network (см. ниже) данный параметр игнорируется. Дефолтное значение - true. |
|
|
|
|
| network | []Struct [см. ниже](#описание-блока-network) | :x: | Параметры сетевого подключения. Если нужно сконфигурировать несколько сетевых подключений, данный блок можно задавать многократно - по одному на каждое подключение. |
|
|
|
|
| network | []Struct [см. ниже](#описание-блока-network) | :x: | Параметры сетевого подключения. Если нужно сконфигурировать несколько сетевых подключений, данный блок можно задавать многократно - по одному на каждое подключение. |
|
|
|
|
| description | string | :x: | Текстовое описание виртуальной машины. |
|
|
|
|
| description | string | :x: | Текстовое описание виртуальной машины. |
|
|
|
|
| started | bool | :x: | Флаг запуска машины,<br/>по-умолчанию - true.<br/>Если true - машина включена,<br/>если false - выключена. |
|
|
|
|
| started | bool | :x: | Флаг запуска машины,<br/>по-умолчанию - true.<br/>Если true - машина включена,<br/>если false - выключена. |
|
|
|
|
| sep_id | int | :x: | Идентификатор sep |
|
|
|
|
| sep_id | int | :x: | Идентификатор sep |
|
|
|
|
| pool | string | :x: | Наименование пула для размещения |
|
|
|
|
| pool | string | :x: | Наименование пула для размещения |
|
|
|
|
| is | string | :x: | Наименование системы |
|
|
|
|
| is | string | :x: | Наименование системы |
|
|
|
|
| ipa_type | string | :x: | Тип аутентификатора |
|
|
|
|
| ipa_type | string | :x: | Тип аутентификатора |
|
|
|
|
| permanently | bool | :x: | Мгновенное удаление виртуальной машины, минуя корзину. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
| permanently | bool | :x: | Мгновенное удаление виртуальной машины, минуя корзину. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
| detach_disks | bool | :x: | Отсоединение прикрепленных к виртуальной машине дисков перед ее удалением. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
| detach_disks | bool | :x: | Отсоединение прикрепленных к виртуальной машине дисков перед ее удалением. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
| disks | []Struct [см. ниже](#описание-блока-disks) | :x: | Описание диска. Таких может быть любое кол-во, либо не быть вообще |
|
|
|
|
| disks | []Struct [см. ниже](#описание-блока-disks) | :x: | Описание диска. Таких может быть любое кол-во, либо не быть вообще |
|
|
|
|
| enabled | bool | :x: | Доступность вычислительной машины |
|
|
|
|
| enabled | bool | :x: | Доступность вычислительной машины |
|
|
|
|
| affinity_label | string | :x: | Метка для правил affinity |
|
|
|
|
| affinity_label | string | :x: | Метка для правил affinity |
|
|
|
|
| affinity_rules | []Struct [см. ниже](#описание-блока-affinity_rules) | :x: | Блок описания правил affinity. Блоков может быть несколько, один или отсутствовать. |
|
|
|
|
| affinity_rules | []Struct [см. ниже](#описание-блока-affinity_rules) | :x: | Блок описания правил affinity. Блоков может быть несколько, один или отсутствовать. |
|
|
|
|
| anti_affinity_rules | []Struct [см. ниже](#описание-блока-anti_affinity_rules) | :x: | Блок описания правил anti-affinity. Блоков может быть несколько, один или отсутствовать. |
|
|
|
|
| anti_affinity_rules | []Struct [см. ниже](#описание-блока-anti_affinity_rules) | :x: | Блок описания правил anti-affinity. Блоков может быть несколько, один или отсутствовать. |
|
|
|
|
| tags | []Struct [см. ниже](#описание-блока-tags) | :x: | Задание тэгов компьюта |
|
|
|
|
| tags | []Struct [см. ниже](#описание-блока-tags) | :x: | Задание тэгов компьюта |
|
|
|
|
| port_forwarding | []Struct [см. ниже](#описание-блока-port_forwarding) | :x: | Настройка порт форвардинга для компьюта |
|
|
|
|
| port_forwarding | []Struct [см. ниже](#описание-блока-port_forwarding) | :x: | Настройка порт форвардинга для компьюта |
|
|
|
|
| user_access | []Struct [см. ниже](#описание-блока-user_access) | :x: | Предоставление доступов к компьюту |
|
|
|
|
| user_access | []Struct [см. ниже](#описание-блока-user_access) | :x: | Предоставление доступов к компьюту |
|
|
|
|
| snapshot | []Struct [см. ниже](#описание-блока-snapshot) | :x: | Создание мнапшотов |
|
|
|
|
| snapshot | []Struct [см. ниже](#описание-блока-snapshot) | :x: | Создание мнапшотов |
|
|
|
|
| rollback | []Struct [см. ниже](#описание-блока-rollback) | :x: | Rollback на определенный снапшот |
|
|
|
|
| rollback | []Struct [см. ниже](#описание-блока-rollback) | :x: | Rollback на определенный снапшот |
|
|
|
|
| cd | []Struct [см. ниже](#описание-блока-cd) | :x: | Добавление диска cd rom |
|
|
|
|
| cd | []Struct [см. ниже](#описание-блока-cd) | :x: | Добавление диска cd rom |
|
|
|
|
| pin_to_stack | bool | :x: | Флаг, отвечающий за добавление кмпьюта в стэк |
|
|
|
|
| pin_to_stack | bool | :x: | Флаг, отвечающий за добавление кмпьюта в стэк |
|
|
|
|
| pause | bool | :x: | Флаг, отвкчающий за pause/resume компьюта |
|
|
|
|
| pause | bool | :x: | Флаг, отвкчающий за pause/resume компьюта |
|
|
|
|
| reset | bool | :x: | Флаг, отвкчающий за reset компьюта |
|
|
|
|
| reset | bool | :x: | Флаг, отвкчающий за reset компьюта |
|
|
|
|
| auto_start | bool | :x: | Флаг, отвечающий за авто старт при редеплое компьюта |
|
|
|
|
| auto_start | bool | :x: | Флаг, отвечающий за авто старт при редеплое компьюта |
|
|
|
|
| force_stop | bool | :x: | Флаг, отвечающий за стоп при редеплое компьюта |
|
|
|
|
| force_stop | bool | :x: | Флаг, отвечающий за стоп при редеплое компьюта |
|
|
|
|
| data_disks | string | :x: | Указание того, что делать с дисками при редеплое. Возможные значения: "KEEP", "DETACH" и "DESTROY" |
|
|
|
|
| data_disks | string | :x: | Указание того, что делать с дисками при редеплое. Возможные значения: "KEEP", "DETACH" и "DESTROY" |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока disks
|
|
|
|
### Описание блока disks
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| ----------- | ------ | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
|
| ----------- | ------ | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
|
| disk_name | string | :heavy_check_mark: | Наименование диска |
|
|
|
|
| disk_name | string | :heavy_check_mark: | Наименование диска |
|
|
|
|
| size | int | :heavy_check_mark: | Размер диска, GB |
|
|
|
|
| size | int | :heavy_check_mark: | Размер диска, GB |
|
|
|
|
| disk_type | string | :x: | Тип диска. Возможные значения: "D" - диск с данными, "B" - загрузочный диск |
|
|
|
|
| disk_type | string | :x: | Тип диска. Возможные значения: "D" - диск с данными, "B" - загрузочный диск |
|
|
|
|
| sep_id | int | :x: | ID storage endpoint |
|
|
|
|
| sep_id | int | :x: | ID storage endpoint |
|
|
|
|
| pool | string | :x: | Наименование пула для размещения диска |
|
|
|
|
| pool | string | :x: | Наименование пула для размещения диска |
|
|
|
|
| desc | string | :x: | Описание диска |
|
|
|
|
| desc | string | :x: | Описание диска |
|
|
|
|
| image_id | int | :x: | ID образа |
|
|
|
|
| image_id | int | :x: | ID образа |
|
|
|
|
| permanently | bool | :x: | Флаг для удаления диска. Если выставлен в true - диск будет моментально удален с платформы, иначе будет добавлен в корзину и его можно будет восстановить. Значение поля считывается только при операции `terraform destroy`. По умолчанию - false |
|
|
|
|
| permanently | bool | :x: | Флаг для удаления диска. Если выставлен в true - диск будет моментально удален с платформы, иначе будет добавлен в корзину и его можно будет восстановить. Значение поля считывается только при операции `terraform destroy`. По умолчанию - false |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока network
|
|
|
|
### Описание блока network
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| ---------- | ------ | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
|
|
| ---------- | ------ | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
|
|
| net_type | string | :heavy_check_mark: | тип сети, соответствующей данному подключению. "EXTNET" в случае прямого подключения во внешнюю сеть, "VINS" в случае подключения к Virtual Network Segment. |
|
|
|
|
| net_type | string | :heavy_check_mark: | тип сети, соответствующей данному подключению. "EXTNET" в случае прямого подключения во внешнюю сеть, "VINS" в случае подключения к Virtual Network Segment. |
|
|
|
|
| net_id | int | :heavy_check_mark: | идентификатор соответствующего сетевого сегмента: внешней сети в случае `net_type = "EXTNET"` и ViNS в случае `net_type = "VINS"` |
|
|
|
|
| net_id | int | :heavy_check_mark: | идентификатор соответствующего сетевого сегмента: внешней сети в случае `net_type = "EXTNET"` и ViNS в случае `net_type = "VINS"` |
|
|
|
|
| ip_address | string | :x: | IP адрес, выделенный данному подключению. |
|
|
|
|
| ip_address | string | :x: | IP адрес, выделенный данному подключению. |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока affinity_rules
|
|
|
|
### Описание блока affinity_rules
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| -------- | ------ | ------------------ | -------------------------------------------------------------------------------------------- |
|
|
|
|
| -------- | ------ | ------------------ | -------------------------------------------------------------------------------------------- |
|
|
|
|
| topology | string | :heavy_check_mark: | Тип правила. Возможные значения - node, compute |
|
|
|
|
| topology | string | :heavy_check_mark: | Тип правила. Возможные значения - node, compute |
|
|
|
|
| policy | string | :heavy_check_mark: | Строгость правила. Возможные значения - RECOMMENDED (рекомендовано) и REQUIRED (обязательно) |
|
|
|
|
| policy | string | :heavy_check_mark: | Строгость правила. Возможные значения - RECOMMENDED (рекомендовано) и REQUIRED (обязательно) |
|
|
|
|
| mode | string | :heavy_check_mark: | Режим проверки. Возможные значения - EQ (равно), NE (не равно), ANY - любое |
|
|
|
|
| mode | string | :heavy_check_mark: | Режим проверки. Возможные значения - EQ (равно), NE (не равно), ANY - любое |
|
|
|
|
| key | string | :heavy_check_mark: | Ключ правила |
|
|
|
|
| key | string | :heavy_check_mark: | Ключ правила |
|
|
|
|
| value | string | :heavy_check_mark: | Значение правила |
|
|
|
|
| value | string | :heavy_check_mark: | Значение правила |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока anti_affinity_rules
|
|
|
|
### Описание блока anti_affinity_rules
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| -------- | ------ | ------------------ | -------------------------------------------------------------------------------------------- |
|
|
|
|
| -------- | ------ | ------------------ | -------------------------------------------------------------------------------------------- |
|
|
|
|
| topology | string | :heavy_check_mark: | Тип правила. Возможные значения - node, compute |
|
|
|
|
| topology | string | :heavy_check_mark: | Тип правила. Возможные значения - node, compute |
|
|
|
|
| policy | string | :heavy_check_mark: | Строгость правила. Возможные значения - RECOMMENDED (рекомендовано) и REQUIRED (обязательно) |
|
|
|
|
| policy | string | :heavy_check_mark: | Строгость правила. Возможные значения - RECOMMENDED (рекомендовано) и REQUIRED (обязательно) |
|
|
|
|
| mode | string | :heavy_check_mark: | Режим проверки. Возможные значения - EQ (равно), NE (не равно), ANY - любое |
|
|
|
|
| mode | string | :heavy_check_mark: | Режим проверки. Возможные значения - EQ (равно), NE (не равно), ANY - любое |
|
|
|
|
| key | string | :heavy_check_mark: | Ключ правила |
|
|
|
|
| key | string | :heavy_check_mark: | Ключ правила |
|
|
|
|
| value | string | :heavy_check_mark: | Значение правила |
|
|
|
|
| value | string | :heavy_check_mark: | Значение правила |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока tags
|
|
|
|
### Описание блока tags
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| -------- | ------ | ------------------ | ------------- |
|
|
|
|
| -------- | ------ | ------------------ | ------------- |
|
|
|
|
| key | string | :heavy_check_mark: | Ключ тэга |
|
|
|
|
| key | string | :heavy_check_mark: | Ключ тэга |
|
|
|
|
| val | string | :heavy_check_mark: | Значение тэга |
|
|
|
|
| val | string | :heavy_check_mark: | Значение тэга |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока port_forwarding
|
|
|
|
### Описание блока port_forwarding
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| ----------------- | ------ | ------------------ | ------------------------------------------------------------------ |
|
|
|
|
| ----------------- | ------ | ------------------ | ------------------------------------------------------------------ |
|
|
|
|
| public_port_start | int | :heavy_check_mark: | Начало диапазона внешних портов для данного правила pfw |
|
|
|
|
| public_port_start | int | :heavy_check_mark: | Начало диапазона внешних портов для данного правила pfw |
|
|
|
|
| public_port_end | int | :x: | Конец диапазона внешних портов для данного правила pfw |
|
|
|
|
| public_port_end | int | :x: | Конец диапазона внешних портов для данного правила pfw |
|
|
|
|
| local_port | int | :heavy_check_mark: | Локальный порт для данного правила pfw |
|
|
|
|
| local_port | int | :heavy_check_mark: | Локальный порт для данного правила pfw |
|
|
|
|
| proto | string | :heavy_check_mark: | Протокол создания правила pfw. Возможные значения: "tcp" или "udp" |
|
|
|
|
| proto | string | :heavy_check_mark: | Протокол создания правила pfw. Возможные значения: "tcp" или "udp" |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока user_access
|
|
|
|
### Описание блока user_access
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| ----------- | ------ | ------------------ | -------------------------------------------------------------------------------------- |
|
|
|
|
| ----------- | ------ | ------------------ | -------------------------------------------------------------------------------------- |
|
|
|
|
| username | string | :heavy_check_mark: | Юзер, которому необходимо выдать определенные права на компьют |
|
|
|
|
| username | string | :heavy_check_mark: | Юзер, которому необходимо выдать определенные права на компьют |
|
|
|
|
| access_type | string | :heavy_check_mark: | Права, которые выдадутся юзеру на компьют. Возможные значения: "R", "RCX" или "ARCXDU" |
|
|
|
|
| access_type | string | :heavy_check_mark: | Права, которые выдадутся юзеру на компьют. Возможные значения: "R", "RCX" или "ARCXDU" |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока snapshot
|
|
|
|
### Описание блока snapshot
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| -------- | ------ | ------------------ | -------------- |
|
|
|
|
| -------- | ------ | ------------------ | -------------- |
|
|
|
|
| label | string | :heavy_check_mark: | Лейбл снапшота |
|
|
|
|
| label | string | :heavy_check_mark: | Лейбл снапшота |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока rollback
|
|
|
|
### Описание блока rollback
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| -------- | ------ | ------------------ | ------------------------------------------------ |
|
|
|
|
| -------- | ------ | ------------------ | ------------------------------------------------ |
|
|
|
|
| label | string | :heavy_check_mark: | Лейбл снапшота на который нужно сделать rollback |
|
|
|
|
| label | string | :heavy_check_mark: | Лейбл снапшота на который нужно сделать rollback |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока cd
|
|
|
|
### Описание блока cd
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| Аргумент | Тип | Обязательный | Описание |
|
|
|
|
| -------- | --- | ------------------ | -------------------------------- |
|
|
|
|
| -------- | --- | ------------------ | -------------------------------- |
|
|
|
|
| cdrom_id | int | :heavy_check_mark: | Идентификатор образа cdrom диска |
|
|
|
|
| cdrom_id | int | :heavy_check_mark: | Идентификатор образа cdrom диска |
|
|
|
|
|
|
|
|
|
|
|
|
## Возвращаемые значения
|
|
|
|
## Возвращаемые значения
|
|
|
|
|
|
|
|
|
|
|
|
В случае успешного выполнения _resource_ функция **decort_kvmvm** возвращает в указанную при вызове переменную следующие значения:
|
|
|
|
В случае успешного выполнения _resource_ функция **decort_kvmvm** возвращает в указанную при вызове переменную следующие значения:
|
|
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
| ------------------------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
|
| ------------------------- | --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
|
| account_id | int | Уникальный идентификатор подписчика-владельца ("account") данной виртуальной машины. |
|
|
|
|
| account_id | int | Уникальный идентификатор подписчика-владельца ("account") данной виртуальной машины. |
|
|
|
|
| account_name | string | Имя подписчика, которому принадлежит данная виртуальная машина. |
|
|
|
|
| account_name | string | Имя подписчика, которому принадлежит данная виртуальная машина. |
|
|
|
|
| affinity_label | string | Метка для правил affinity |
|
|
|
|
| affinity_label | string | Метка для правил affinity |
|
|
|
|
| affinity_weight | int | weight аффинити |
|
|
|
|
| affinity_weight | int | weight аффинити |
|
|
|
|
| arch | string | Архитектура |
|
|
|
|
| arch | string | Архитектура |
|
|
|
|
| boot_order | []string | Boot order |
|
|
|
|
| boot_order | []string | Boot order |
|
|
|
|
| boot_disk | []Struct [см. ниже](#описание-структуры-boot_disk) | Полная информация о бутдиске |
|
|
|
|
| boot_disk | []Struct [см. ниже](#описание-структуры-boot_disk) | Полная информация о бутдиске |
|
|
|
|
| boot_disk_id | int | Идентификатор загрузочного диска виртуальной машины. |
|
|
|
|
| boot_disk_id | int | Идентификатор загрузочного диска виртуальной машины. |
|
|
|
|
| boot_disk_size | int | Размер загрузочного диска в ГБ. |
|
|
|
|
| boot_disk_size | int | Размер загрузочного диска в ГБ. |
|
|
|
|
| driver | string | Аппаратная архитектура данной виртуальной машины. |
|
|
|
|
| driver | string | Аппаратная архитектура данной виртуальной машины. |
|
|
|
|
| disks | [см. ниже](#описание-блока-disks) | Описание диска. Таких может быть любое кол-во, либо не быть вообще |
|
|
|
|
| disks | [см. ниже](#описание-блока-disks) | Описание диска. Таких может быть любое кол-во, либо не быть вообще |
|
|
|
|
| clone_reference | int | кол-во клонов |
|
|
|
|
| clone_reference | int | кол-во клонов |
|
|
|
|
| clones | []int | id клонов |
|
|
|
|
| clones | []int | id клонов |
|
|
|
|
| computeci_id | int | Id computeci |
|
|
|
|
| computeci_id | int | Id computeci |
|
|
|
|
| cpu | int | Количество виртуальных CPU, выделенных данному серверу. |
|
|
|
|
| cpu | int | Количество виртуальных CPU, выделенных данному серверу. |
|
|
|
|
| created_by | string | Кем создан ресурс |
|
|
|
|
| created_by | string | Кем создан ресурс |
|
|
|
|
| created_time | int | Время создания ресурса |
|
|
|
|
| created_time | int | Время создания ресурса |
|
|
|
|
|custom_fields | string | Кастомные поля |
|
|
|
|
|custom_fields | string | Кастомные поля |
|
|
|
|
| deleted_by | string | Кем удален ресурс |
|
|
|
|
| deleted_by | string | Кем удален ресурс |
|
|
|
|
| deleted_time | int | Время удаления ресурса |
|
|
|
|
| deleted_time | int | Время удаления ресурса |
|
|
|
|
| description | string | Текстовое описание виртуальной машины. |
|
|
|
|
| description | string | Текстовое описание виртуальной машины. |
|
|
|
|
| detach_disks | bool | Отсоединение прикрепленных к виртуальной машине дисков перед ее удалением. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
| detach_disks | bool | Отсоединение прикрепленных к виртуальной машине дисков перед ее удалением. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
| devices | string | Девайсы |
|
|
|
|
| devices | string | Девайсы |
|
|
|
|
| enabled | bool | Доступность вычислительной машины |
|
|
|
|
| enabled | bool | Доступность вычислительной машины |
|
|
|
|
| extra_disks | list of ints | Список идентификаторов дополнительных дисков, которые подключены к данной виртуальной машине помимо загрузочного диска. Если такие диски отсутствуют, то список будет пустым. |
|
|
|
|
| extra_disks | list of ints | Список идентификаторов дополнительных дисков, которые подключены к данной виртуальной машине помимо загрузочного диска. Если такие диски отсутствуют, то список будет пустым. |
|
|
|
|
| gid | int | GID |
|
|
|
|
| gid | int | GID |
|
|
|
|
| guid | int | GUID |
|
|
|
|
| guid | int | GUID |
|
|
|
|
| compute_id | int | Идентификатор экземпляра _compute_, соответствующего данной виртуальной машине. |
|
|
|
|
| compute_id | int | Идентификатор экземпляра _compute_, соответствующего данной виртуальной машине. |
|
|
|
|
| id | int | Уникальный идентификатор этой виртуальной машины в облачной платформе. Всегда совпадает с `compute_id`. |
|
|
|
|
| id | int | Уникальный идентификатор этой виртуальной машины в облачной платформе. Всегда совпадает с `compute_id`. |
|
|
|
|
| image_id | int | Идентификатор образа ОС, на базе которого создан загрузочный диск этой виртуальной машины. |
|
|
|
|
| image_id | int | Идентификатор образа ОС, на базе которого создан загрузочный диск этой виртуальной машины. |
|
|
|
|
| interfaces | []Struct [см. ниже](#описание-структуры-interfaces) | Информация о интерфейсах компьюта |
|
|
|
|
| interfaces | []Struct [см. ниже](#описание-структуры-interfaces) | Информация о интерфейсах компьюта |
|
|
|
|
| ipa_type | string | Тип аутентификатора |
|
|
|
|
| ipa_type | string | Тип аутентификатора |
|
|
|
|
| is | string | Наименование системы |
|
|
|
|
| is | string | Наименование системы |
|
|
|
|
| lock_status | string | Статус доступности |
|
|
|
|
| lock_status | string | Статус доступности |
|
|
|
|
| manager_id | int | Manager id |
|
|
|
|
| manager_id | int | Manager id |
|
|
|
|
| manager_type | string | Type manager |
|
|
|
|
| manager_type | string | Type manager |
|
|
|
|
| migrationjob | int | Migrationjob |
|
|
|
|
| migrationjob | int | Migrationjob |
|
|
|
|
| milestones | int | Вехи |
|
|
|
|
| milestones | int | Вехи |
|
|
|
|
| name | string | Имя виртуального сервера.<br>Возвращаемое значение `name` совпадает со значением соответствующего аргумента, переданного при вызове функции. |
|
|
|
|
| name | string | Имя виртуального сервера.<br>Возвращаемое значение `name` совпадает со значением соответствующего аргумента, переданного при вызове функции. |
|
|
|
|
| natable_vins_id | int | NAT vins id |
|
|
|
|
| natable_vins_id | int | NAT vins id |
|
|
|
|
| natable_vins_ip | string | NAT vins ip |
|
|
|
|
| natable_vins_ip | string | NAT vins ip |
|
|
|
|
| natable_vins_name | string | NAT vins name |
|
|
|
|
| natable_vins_name | string | NAT vins name |
|
|
|
|
| natable_vins_network | string | NAT vins network |
|
|
|
|
| natable_vins_network | string | NAT vins network |
|
|
|
|
| natable_vins_network_name | string | NAT vins network name |
|
|
|
|
| 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 адрес, назначенный соответствующему сетевому интерфейсу виртуальной машины. |
|
|
|
|
| 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` - пароль к этой учётной записи. |
|
|
|
|
| os_users | []Struct [см. ниже](#описание-структуры-os-users) | Имена и пароли пользователей гостевой ОС, установленные платформой при создании виртуального сервера. Формат структуры:<br/>_ (string) `login` - учётная запись в гостевой ОС.<br/>_ (string) `password` - пароль к этой учётной записи. |
|
|
|
|
| permanently | bool | Мгновенное удаление виртуальной машины, минуя корзину. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
| permanently | bool | Мгновенное удаление виртуальной машины, минуя корзину. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса |
|
|
|
|
| pinned | bool | добавлен ли компьют на стек |
|
|
|
|
| pinned | bool | добавлен ли компьют на стек |
|
|
|
|
| pool | string | Наименование пула для размещения |
|
|
|
|
| pool | string | Наименование пула для размещения |
|
|
|
|
| ram | int | Объём оперативной памяти в МБ, выделенной этой виртуальной машине. |
|
|
|
|
| ram | int | Объём оперативной памяти в МБ, выделенной этой виртуальной машине. |
|
|
|
|
| reference_id | string | ID reference |
|
|
|
|
| reference_id | string | ID reference |
|
|
|
|
| registered | bool | Компьют зарегестрирован |
|
|
|
|
| registered | bool | Компьют зарегестрирован |
|
|
|
|
| res_name | string | Res name |
|
|
|
|
| res_name | string | Res name |
|
|
|
|
| reset | bool | Флаг отвкчающий за reset компьюта |
|
|
|
|
| reset | bool | Флаг отвкчающий за reset компьюта |
|
|
|
|
| rg_id | int | Идентификатор ресурсной группы, к которой принадлежит виртуальная машина. |
|
|
|
|
| rg_id | int | Идентификатор ресурсной группы, к которой принадлежит виртуальная машина. |
|
|
|
|
| rg_name | string | Имя ресурсной группы, к которой принадлежит виртуальная машина. |
|
|
|
|
| rg_name | string | Имя ресурсной группы, к которой принадлежит виртуальная машина. |
|
|
|
|
| sep_id | int | Идентификатор sep |
|
|
|
|
| sep_id | int | Идентификатор sep |
|
|
|
|
| snap_sets | []Struct [см. ниже](#описание-структуры-snap-sets) | Snap sets |
|
|
|
|
| snap_sets | []Struct [см. ниже](#описание-структуры-snap-sets) | Snap sets |
|
|
|
|
| started | bool | Опциональный параметр, флаг запуска машины,<br/>по-умолчанию - true.<br/>Если true - машина включена,<br/>если false - выключена. |
|
|
|
|
| started | bool | Опциональный параметр, флаг запуска машины,<br/>по-умолчанию - true.<br/>Если true - машина включена,<br/>если false - выключена. |
|
|
|
|
| stateless_sep_id | int | ID сепа |
|
|
|
|
| stateless_sep_id | int | ID сепа |
|
|
|
|
| stateless_sep_type | string | Тип сепа |
|
|
|
|
| stateless_sep_type | string | Тип сепа |
|
|
|
|
| status | string | Cтатус |
|
|
|
|
| status | string | Cтатус |
|
|
|
|
| tech_status | string | Технический статус |
|
|
|
|
| tech_status | string | Технический статус |
|
|
|
|
| updated_by | string | Кем обновлен ресурс |
|
|
|
|
| updated_by | string | Кем обновлен ресурс |
|
|
|
|
| updated_time | int | Время обновления ресурса |
|
|
|
|
| updated_time | int | Время обновления ресурса |
|
|
|
|
| user_managed | bool | User managed |
|
|
|
|
| user_managed | bool | User managed |
|
|
|
|
| cloud_init | string | Параметры cloud_init |
|
|
|
|
| cloud_init | string | Параметры cloud_init |
|
|
|
|
| vgpus | []int | Список vgpu |
|
|
|
|
| vgpus | []int | Список vgpu |
|
|
|
|
| virtual_image_id | int | ID виртуального образа |
|
|
|
|
| virtual_image_id | int | ID виртуального образа |
|
|
|
|
| virtual_image_name | string | Имя образа ОС, на базе которого создан загрузочный диск этой виртуальной машины. |
|
|
|
|
| virtual_image_name | string | Имя образа ОС, на базе которого создан загрузочный диск этой виртуальной машины. |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры interfaces
|
|
|
|
### Описание структуры interfaces
|
|
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
| ------------- | --------------------------------------------- | --------------------- |
|
|
|
|
| ------------- | --------------------------------------------- | --------------------- |
|
|
|
|
| conn_id | int | ID connect |
|
|
|
|
| conn_id | int | ID connect |
|
|
|
|
| conn_type | string | Тип connect |
|
|
|
|
| conn_type | string | Тип connect |
|
|
|
|
| def_gw | string | Шлюз по умолчанию |
|
|
|
|
| def_gw | string | Шлюз по умолчанию |
|
|
|
|
| flip_group_id | int | id flip group |
|
|
|
|
| flip_group_id | int | id flip group |
|
|
|
|
| guid | string | GUID |
|
|
|
|
| guid | string | GUID |
|
|
|
|
| ip_address | string | IP адрес |
|
|
|
|
| ip_address | string | IP адрес |
|
|
|
|
| listen_ssh | bool | открыт ли ssh connect |
|
|
|
|
| listen_ssh | bool | открыт ли ssh connect |
|
|
|
|
| mac | string | MAC адрес устройства |
|
|
|
|
| mac | string | MAC адрес устройства |
|
|
|
|
| name | string | Имя |
|
|
|
|
| name | string | Имя |
|
|
|
|
| net_id | int | ID сети |
|
|
|
|
| net_id | int | ID сети |
|
|
|
|
| netmask | int | Маска сети |
|
|
|
|
| netmask | int | Маска сети |
|
|
|
|
| net_type | string | Тип сети |
|
|
|
|
| net_type | string | Тип сети |
|
|
|
|
| pci_slot | int | Pci Slot |
|
|
|
|
| pci_slot | int | Pci Slot |
|
|
|
|
| qos | []Struct{}[см. ниже](#описание-структуры-qos) | QOS |
|
|
|
|
| qos | []Struct{}[см. ниже](#описание-структуры-qos) | QOS |
|
|
|
|
| target | string | Цель сети |
|
|
|
|
| target | string | Цель сети |
|
|
|
|
| type | string | Тип |
|
|
|
|
| type | string | Тип |
|
|
|
|
| vnfs | []int | VNFS |
|
|
|
|
| vnfs | []int | VNFS |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры qos
|
|
|
|
### Описание структуры qos
|
|
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
| -------- | ------ | ---------- |
|
|
|
|
| -------- | ------ | ---------- |
|
|
|
|
| e_rate | int | E rate |
|
|
|
|
| e_rate | int | E rate |
|
|
|
|
| guid | string | ID ресурса |
|
|
|
|
| guid | string | ID ресурса |
|
|
|
|
| in_brust | int | In brust |
|
|
|
|
| in_brust | int | In brust |
|
|
|
|
| in_rate | int | In rate |
|
|
|
|
| in_rate | int | In rate |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры os users
|
|
|
|
### Описание структуры os users
|
|
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
| ---------- | ------ | ------------------ |
|
|
|
|
| ---------- | ------ | ------------------ |
|
|
|
|
| guid | string | GUID |
|
|
|
|
| guid | string | GUID |
|
|
|
|
| login | string | Логин |
|
|
|
|
| login | string | Логин |
|
|
|
|
| password | string | Пароль |
|
|
|
|
| password | string | Пароль |
|
|
|
|
| public_key | string | Публичный ssh ключ |
|
|
|
|
| public_key | string | Публичный ssh ключ |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры snap sets
|
|
|
|
### Описание структуры snap sets
|
|
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
| --------- | ------ | ---------------- |
|
|
|
|
| --------- | ------ | ---------------- |
|
|
|
|
| disks | []int | Список id дисков |
|
|
|
|
| disks | []int | Список id дисков |
|
|
|
|
| guid | string | GUID |
|
|
|
|
| guid | string | GUID |
|
|
|
|
| label | string | Лейбл |
|
|
|
|
| label | string | Лейбл |
|
|
|
|
| timestamp | int | Время |
|
|
|
|
| timestamp | int | Время |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание структуры boot_disk
|
|
|
|
### Описание структуры boot_disk
|
|
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
| Параметр | Тип | Описание |
|
|
|
|
| --------- | ------ | --------------------------- |
|
|
|
|
| --------- | ------ | --------------------------- |
|
|
|
|
| desc | string | Описание диска |
|
|
|
|
| desc | string | Описание диска |
|
|
|
|
| disk_id | int | ID диска |
|
|
|
|
| disk_id | int | ID диска |
|
|
|
|
| disk_name | string | Наименование диска |
|
|
|
|
| disk_name | string | Наименование диска |
|
|
|
|
| disk_type | string | Тип диска (B) |
|
|
|
|
| disk_type | string | Тип диска (B) |
|
|
|
|
| image_id | int | ID образа диска |
|
|
|
|
| image_id | int | ID образа диска |
|
|
|
|
| pool | string | Наименование пула |
|
|
|
|
| pool | string | Наименование пула |
|
|
|
|
| sep_id | int | Storage Endpoint ID |
|
|
|
|
| sep_id | int | Storage Endpoint ID |
|
|
|
|
| shareable | bool | Доступность другим ресурсам |
|
|
|
|
| shareable | bool | Доступность другим ресурсам |
|
|
|
|
| size | int | Размер диска |
|
|
|
|
| size | int | Размер диска |
|
|
|
|
| size_max | int | Максимальный размер диска |
|
|
|
|
| size_max | int | Максимальный размер диска |
|
|
|
|
| size_used | float | Используемый размер |
|
|
|
|
| size_used | float | Используемый размер |
|
|
|
|
|
|
|
|
|
|
|
|
### Описание блока disks
|
|
|
|
### Описание блока disks
|
|
|
|
|
|
|
|
|
|
|
|
| Аргумент | Тип | Описание |
|
|
|
|
| Аргумент | Тип | Описание |
|
|
|
|
| --------- | ------ | --------------------------------------------------------------------------- |
|
|
|
|
| --------- | ------ | --------------------------------------------------------------------------- |
|
|
|
|
| disk_id | int | ID диска |
|
|
|
|
| disk_id | int | ID диска |
|
|
|
|
| disk_name | string | Наименование диска |
|
|
|
|
| disk_name | string | Наименование диска |
|
|
|
|
| size | int | Размер диска, GB |
|
|
|
|
| size | int | Размер диска, GB |
|
|
|
|
| disk_type | string | Тип диска. Возможные значения: "D" - диск с данными, "B" - загрузочный диск |
|
|
|
|
| disk_type | string | Тип диска. Возможные значения: "D" - диск с данными, "B" - загрузочный диск |
|
|
|
|
| sep_id | int | ID storage endpoint |
|
|
|
|
| sep_id | int | ID storage endpoint |
|
|
|
|
| shareable | bool | Флаг, отвечающий за доступность диска дургим ресурсам |
|
|
|
|
| shareable | bool | Флаг, отвечающий за доступность диска дургим ресурсам |
|
|
|
|
| size_max | int | Размер диска |
|
|
|
|
| size_max | int | Размер диска |
|
|
|
|
| size_used | float | Размер занимаемого на диске места |
|
|
|
|
| size_used | float | Размер занимаемого на диске места |
|
|
|
|
| pool | string | Наименование пула для размещения диска |
|
|
|
|
| pool | string | Наименование пула для размещения диска |
|
|
|
|
| desc | string | Описание диска |
|
|
|
|
| desc | string | Описание диска |
|
|
|
|
| image_id | int | ID образа |
|
|
|
|
| image_id | int | ID образа |
|
|
|
|
|
|
|
|
|
|
|
|
## Пример использования
|
|
|
|
## Пример использования
|
|
|
|
|
|
|
|
|
|
|
|
В нижеприведённом примере с помощью _resource_ функции **decort_kvmvm** создаётся виртуальная машина (экземпляр _compute_ в терминологии платформы DECORT) следующими характеристиками:
|
|
|
|
В нижеприведённом примере с помощью _resource_ функции **decort_kvmvm** создаётся виртуальная машина (экземпляр _compute_ в терминологии платформы DECORT) следующими характеристиками:
|
|
|
|
|
|
|
|
|
|
|
|
- Имя виртуальной машины - "tf-managed-vm"
|
|
|
|
- Имя виртуальной машины - "tf-managed-vm"
|
|
|
|
- Характеристики виртуальной машины - 1 CPU, 1024Мб RAM, размер загрузочного диска 10Гб
|
|
|
|
- Характеристики виртуальной машины - 1 CPU, 1024Мб RAM, размер загрузочного диска 10Гб
|
|
|
|
- К виртуальной машине будет подключён один дополнительный диск с идентификатором 56789
|
|
|
|
- К виртуальной машине будет подключён один дополнительный диск с идентификатором 56789
|
|
|
|
- Идентификатор ресурсной группы, в которой создаётся виртуальная машина - поступает из переменной _decort_resgroup.my_rg.id_
|
|
|
|
- Идентификатор ресурсной группы, в которой создаётся виртуальная машина - поступает из переменной _decort_resgroup.my_rg.id_
|
|
|
|
- Идентификатор образа ОС, который будет установлен на загрузочный диск - поступает из переменной _data.decort_image.os_image.id_
|
|
|
|
- Идентификатор образа ОС, который будет установлен на загрузочный диск - поступает из переменной _data.decort_image.os_image.id_
|
|
|
|
- Виртуальная машина будет иметь одно сетевое подключение - во внешнюю сеть с идентификатором 12, IP адрес этого подключения платформа установит автоматически
|
|
|
|
- Виртуальная машина будет иметь одно сетевое подключение - во внешнюю сеть с идентификатором 12, IP адрес этого подключения платформа установит автоматически
|
|
|
|
- Для виртуальной машины будет создан и автоматически подключен диск с именем "test_disk" и размером в 10 GB. Созданный диск будет иметь тип "D", размещен в pool "test_pool", в хранилище с идентификатором 3. Данный диск будет создан с системным образом, который имеет идентификатор 3456.
|
|
|
|
- Для виртуальной машины будет создан и автоматически подключен диск с именем "test_disk" и размером в 10 GB. Созданный диск будет иметь тип "D", размещен в pool "test_pool", в хранилище с идентификатором 3. Данный диск будет создан с системным образом, который имеет идентификатор 3456.
|
|
|
|
|
|
|
|
|
|
|
|
```terraform
|
|
|
|
```terraform
|
|
|
|
resource "decort_kvmvm" "my_new_vm" {
|
|
|
|
resource "decort_kvmvm" "my_new_vm" {
|
|
|
|
name = "tf-managed-vm"
|
|
|
|
name = "tf-managed-vm"
|
|
|
|
rg_id = decort_resgroup.my_rg.id
|
|
|
|
rg_id = decort_resgroup.my_rg.id
|
|
|
|
driver = "KVM_X86" # "KVM_PPC" for IBM Power or "KVM_X86" for Intel
|
|
|
|
driver = "KVM_X86" # "KVM_PPC" for IBM Power or "KVM_X86" for Intel
|
|
|
|
cpu = 1 # CPU count
|
|
|
|
cpu = 1 # CPU count
|
|
|
|
ram = 1024 # RAM size in MB, must be even number, ideally a power of 2
|
|
|
|
ram = 1024 # RAM size in MB, must be even number, ideally a power of 2
|
|
|
|
boot_disk_size = 10 # Boot disk size in GB
|
|
|
|
boot_disk_size = 10 # Boot disk size in GB
|
|
|
|
extra_disks = [ 56789 ]
|
|
|
|
extra_disks = [ 56789 ]
|
|
|
|
image_id = data.decort_image.os_image.id
|
|
|
|
image_id = data.decort_image.os_image.id
|
|
|
|
description = "Test KVM VM Compute managed by Terraform"
|
|
|
|
description = "Test KVM VM Compute managed by Terraform"
|
|
|
|
|
|
|
|
|
|
|
|
cloud_init = file("initconfig.tftpl") # содержание файла см. ниже
|
|
|
|
cloud_init = file("initconfig.tftpl") # содержание файла см. ниже
|
|
|
|
|
|
|
|
|
|
|
|
network {
|
|
|
|
network {
|
|
|
|
net_type = "EXTNET"
|
|
|
|
net_type = "EXTNET"
|
|
|
|
net_id = 12
|
|
|
|
net_id = 12
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
disks {
|
|
|
|
disks {
|
|
|
|
disk_name = "test_disk"
|
|
|
|
disk_name = "test_disk"
|
|
|
|
size = 10
|
|
|
|
size = 10
|
|
|
|
sep_id = 3
|
|
|
|
sep_id = 3
|
|
|
|
pool = "test_pool"
|
|
|
|
pool = "test_pool"
|
|
|
|
image_id = 3456
|
|
|
|
image_id = 3456
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
affinity_label = "test4"
|
|
|
|
affinity_label = "test4"
|
|
|
|
|
|
|
|
|
|
|
|
affinity_rules {
|
|
|
|
affinity_rules {
|
|
|
|
topology = "compute"
|
|
|
|
topology = "compute"
|
|
|
|
policy = "RECOMMENDED"
|
|
|
|
policy = "RECOMMENDED"
|
|
|
|
mode = "ANY"
|
|
|
|
mode = "ANY"
|
|
|
|
key = "testkey1"
|
|
|
|
key = "testkey1"
|
|
|
|
value = "testvalue1"
|
|
|
|
value = "testvalue1"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
anti_affinity_rules {
|
|
|
|
anti_affinity_rules {
|
|
|
|
topology = "compute"
|
|
|
|
topology = "compute"
|
|
|
|
policy = "RECOMMENDED"
|
|
|
|
policy = "RECOMMENDED"
|
|
|
|
mode = "ANY"
|
|
|
|
mode = "ANY"
|
|
|
|
key = "testkey2"
|
|
|
|
key = "testkey2"
|
|
|
|
value = "testvalue2"
|
|
|
|
value = "testvalue2"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#started = true
|
|
|
|
#started = true
|
|
|
|
#enabled = true
|
|
|
|
#enabled = true
|
|
|
|
#is=""
|
|
|
|
#is=""
|
|
|
|
#ipa_type = ""
|
|
|
|
#ipa_type = ""
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### initconfig.tftpl
|
|
|
|
### initconfig.tftpl
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"users": [
|
|
|
|
"users": [
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"groups": "users, wheel",
|
|
|
|
"groups": "users, wheel",
|
|
|
|
"name": "user",
|
|
|
|
"name": "user",
|
|
|
|
"plain_text_passwd": "examplePassword",
|
|
|
|
"plain_text_passwd": "examplePassword",
|
|
|
|
"primary_group": "user",
|
|
|
|
"primary_group": "user",
|
|
|
|
"ssh_authorized_keys": [
|
|
|
|
"ssh_authorized_keys": [
|
|
|
|
"ssh-rsa EXAMPLE%id_rsa.pub"
|
|
|
|
"ssh-rsa EXAMPLE%id_rsa.pub"
|
|
|
|
],
|
|
|
|
],
|
|
|
|
"sudo": "ALL=(ALL) NOPASSWD:ALL"
|
|
|
|
"sudo": "ALL=(ALL) NOPASSWD:ALL"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
Данный пример подразумевает, что ранее по тексту tf-файла :
|
|
|
|
Данный пример подразумевает, что ранее по тексту tf-файла :
|
|
|
|
|
|
|
|
|
|
|
|
- выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://repository.basistech.ru/BASIS/terraform-provider-decort/wiki/04.02-Инициализация-Terraform-провайдера-DECORT)).
|
|
|
|
- выполнена корректная инициализация провайдера (подробнее об инициализации 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_
|
|
|
|
- создан ресурс типа 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_
|
|
|
|
- считана информация об образе ОС(см. _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`.
|
|
|
|
После успешного завершения такого вызова _resource_ функции **decort_kvmvm** в переменной `decort_kvmvm.my_new_vm` будут сохранены возвращаемые значения. В частности, для получения идентификатора виртуальной машины следует использовать конструкцию `decort_kvmvm.my_new_vm.id`.
|
|
|
|
|
|
|
|