|
|
|
|
## Инструкция по миграции с terraform-provider-decort на terraform-provider-dynamix
|
|
|
|
|
### Установка terraform-provider-dynamix
|
|
|
|
|
В релизном архиве находятся скрипты-инсталляторы.
|
|
|
|
|
Чтобы выполнить установку, необходимо:
|
|
|
|
|
1. Перейти по адресу: https://repository.basistech.ru/BASIS/terraform-provider-dynamix/releases
|
|
|
|
|
2. Выбрать необходимую версию провайдера подходящую под операционную систему.
|
|
|
|
|
3. Скачать архив.
|
|
|
|
|
4. Распаковать архив.
|
|
|
|
|
5. Выполнить скрипт установщика, `install.sh` или `install.bat` для Windows.<br/>
|
|
|
|
|
*Для запуска `install.sh` не забудьте изменить права доступа к файлу*
|
|
|
|
|
```bash
|
|
|
|
|
chmod u+x install.sh
|
|
|
|
|
```
|
|
|
|
|
6. Дождаться сообщения об успешной установке. Установщик выведет актуальный блок конфигурации провайдера, скопируйте его
|
|
|
|
|
```bash
|
|
|
|
|
DYNAMIX provider version 1.2.1 has been successfully installed
|
|
|
|
|
|
|
|
|
|
Copy this provider configuration to main.tf file:
|
|
|
|
|
terraform {
|
|
|
|
|
required_providers {
|
|
|
|
|
dynamix = {
|
|
|
|
|
source = "basistech.ru/tf/dynamix"
|
|
|
|
|
version = "1.2.1"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
7. Теперь вам необходимо отредактировать ваши конфигурационные .tf файлы terraform-provider-decort для работы с terraform-provider-dynamix.
|
|
|
|
|
|
|
|
|
|
#### Общие изменения
|
|
|
|
|
Измените блок подключения провайдера. Замените `decort` на `dynamix`, `source = "basis/decort/decort"` на
|
|
|
|
|
`source = "basistech.ru/tf/dynamix"`, укажите нужную версию.
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
terraform {
|
|
|
|
|
required_providers {
|
|
|
|
|
decort = {
|
|
|
|
|
source = "basis/decort/decort"
|
|
|
|
|
version = "4.6.1"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
terraform {
|
|
|
|
|
required_providers {
|
|
|
|
|
dynamix = {
|
|
|
|
|
source = "basistech.ru/tf/dynamix"
|
|
|
|
|
version = "1.2.1"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
Измените блок настройки провайдера. Замените название провайдера с `decort` на `dynamix`.
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
provider "decort" {
|
|
|
|
|
authenticator = "decs3o"
|
|
|
|
|
#controller_url = <DECORT_CONTROLLER_URL>
|
|
|
|
|
controller_url = "https://ds1.digitalenergy.online"
|
|
|
|
|
#oauth2_url = <DECORT_SSO_URL>
|
|
|
|
|
oauth2_url = "https://sso.digitalenergy.online"
|
|
|
|
|
allow_unverified_ssl = true
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
provider "dynamix" {
|
|
|
|
|
authenticator = "decs3o"
|
|
|
|
|
#controller_url = <DYNAMIX_CONTROLLER_URL>
|
|
|
|
|
controller_url = "https://ds1.digitalenergy.online"
|
|
|
|
|
#oauth2_url = <DYNAMIX_SSO_URL>
|
|
|
|
|
oauth2_url = "https://sso.digitalenergy.online"
|
|
|
|
|
allow_unverified_ssl = true
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Если параметры провайдера указаны в переменных окружения, замените префикс DECORT на DYNAMIX
|
|
|
|
|
#### Было
|
|
|
|
|
`DECORT_CONTROLLER_URL`
|
|
|
|
|
#### Стало
|
|
|
|
|
`DYNAMIX_CONTROLLER_URL`
|
|
|
|
|
|
|
|
|
|
Измените блок описания самого ресурса/датасурса. Замените `decort` на `dynamix`.
|
|
|
|
|
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
data "decort_account" "a" {
|
|
|
|
|
#id аккаунта
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
account_id = 11111
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
data "dynamix_account" "a" {
|
|
|
|
|
#id аккаунта
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
account_id = 11111
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Не забудьте изменить название ресурса/датасурса в блоке вывода. Замените `decort` на `dynamix`.
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
output "test" {
|
|
|
|
|
value = data.decort_account.a
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
output "test" {
|
|
|
|
|
value = data.dynamix_account.a
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
Для большинства конфигурационных файлов этих изменений будет достаточно. В терминале выполните команду
|
|
|
|
|
```bash
|
|
|
|
|
terraform init
|
|
|
|
|
```
|
|
|
|
|
В случае успешной установки, Terraform инициализирует провайдер и будет готов к дальнейшей работе.<br/>
|
|
|
|
|
Для ресурсов, которые описаны ниже необходимо сделать несколько дополнительных изменений.
|
|
|
|
|
#### Аккаунты account
|
|
|
|
|
1. data source `dynamix_account_deleted_list`
|
|
|
|
|
- Data source `dynamix_account_deleted_list` теперь имеет название `dynamix_account_list_deleted` и должен быть переименован. Блок `output` так же должен быть изменен.
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
data "dynamix_account_deleted_list" "adl" {
|
|
|
|
|
#фильтр по id аккаунта
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
#by_id = 100
|
|
|
|
|
|
|
|
|
|
#фильтр по имени аккаунта
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
#name = "test"
|
|
|
|
|
|
|
|
|
|
#фильтр по acl
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
#acl = "acl"
|
|
|
|
|
|
|
|
|
|
#сортировка по одному из поддерживаемых полей
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
#формат - "+поле" по возрастанию / "-поле" по убыванию
|
|
|
|
|
#sort_by = "+name"
|
|
|
|
|
|
|
|
|
|
#номер страницы для отображения
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
#если не задан - выводятся все доступные данные
|
|
|
|
|
#page = 2
|
|
|
|
|
|
|
|
|
|
#размер страницы
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
#если не задан - выводятся все доступные данные
|
|
|
|
|
#size = 3
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
output "test" {
|
|
|
|
|
value = data.dynamix_account_deleted_list.adl
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
data "dynamix_account_list_deleted" "adl" {
|
|
|
|
|
#фильтр по id аккаунта
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
#by_id = 100
|
|
|
|
|
|
|
|
|
|
#фильтр по имени аккаунта
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
#name = "test"
|
|
|
|
|
|
|
|
|
|
#фильтр по acl
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
#acl = "acl"
|
|
|
|
|
|
|
|
|
|
#сортировка по одному из поддерживаемых полей
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
#формат - "+поле" по возрастанию / "-поле" по убыванию
|
|
|
|
|
#sort_by = "+name"
|
|
|
|
|
|
|
|
|
|
#номер страницы для отображения
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
#если не задан - выводятся все доступные данные
|
|
|
|
|
#page = 2
|
|
|
|
|
|
|
|
|
|
#размер страницы
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
#если не задан - выводятся все доступные данные
|
|
|
|
|
#size = 3
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
output "test" {
|
|
|
|
|
value = data.dynamix_account_list_deleted.adl
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### Ресурсная группа rg
|
|
|
|
|
|
|
|
|
|
1. resource `dynamix_resgroup`
|
|
|
|
|
|
|
|
|
|
- Блоки `def_net`, `access`, `quota` стали атрибутами и теперь их следует задавать через знак равно.
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
access [{
|
|
|
|
|
#имя юзера предоставляемому права
|
|
|
|
|
#обязательный параметр при использовании блока
|
|
|
|
|
#тип - строка
|
|
|
|
|
user = "user@decs3o"
|
|
|
|
|
|
|
|
|
|
#тип прав
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
right = "RCX"
|
|
|
|
|
}]
|
|
|
|
|
```
|
|
|
|
|
```go
|
|
|
|
|
def_net {
|
|
|
|
|
#тип сети
|
|
|
|
|
#обязательный параметр при использовании блока
|
|
|
|
|
#тип - строка
|
|
|
|
|
net_type = "PUBLIC"
|
|
|
|
|
|
|
|
|
|
#id сети
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#идентификатор сегмента сети. Если net_type — PUBLIC, а net_id — 0,
|
|
|
|
|
#то будет выбран сегмент внешней сети по умолчанию. Если net_type
|
|
|
|
|
#имеет значение PRIVATE и net_id=0, будет выбран первый vins, определенный для этой ресурсной группы
|
|
|
|
|
#в противном случае net_id идентифицирует либо существующий сегмент внешней сети, либо vins
|
|
|
|
|
#тип - целое число
|
|
|
|
|
net_id = 1234
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
```go
|
|
|
|
|
quota {
|
|
|
|
|
#максимальное количество ядер процессора
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#значение по умолчанию: -1
|
|
|
|
|
#тип - целое число
|
|
|
|
|
cpu = 5
|
|
|
|
|
|
|
|
|
|
#максимальный размер памяти в мегабайтах
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#значение по умолчанию: -1
|
|
|
|
|
#тип - целое число
|
|
|
|
|
ram = 1024
|
|
|
|
|
|
|
|
|
|
#максимальный размер объединенных виртуальных дисков в ГБ
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#значение по умолчанию: -1
|
|
|
|
|
#тип - целое число
|
|
|
|
|
disk = 180
|
|
|
|
|
|
|
|
|
|
#максимальное количество отправленных/полученных сетевых узлов
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#значение по умолчанию: -1
|
|
|
|
|
#тип - целое число
|
|
|
|
|
ext_traffic = 21
|
|
|
|
|
|
|
|
|
|
#максимальное количество назначенных общедоступных IP-адресов
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#значение по умолчанию: -1
|
|
|
|
|
#тип - целое число
|
|
|
|
|
ext_ips = 29
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
access = [{
|
|
|
|
|
#имя юзера предоставляемому права
|
|
|
|
|
#обязательный параметр при использовании блока
|
|
|
|
|
#тип - строка
|
|
|
|
|
user = "user@decs3o"
|
|
|
|
|
|
|
|
|
|
#тип прав
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
right = "RCX"
|
|
|
|
|
}]
|
|
|
|
|
```
|
|
|
|
|
```go
|
|
|
|
|
def_net = {
|
|
|
|
|
#тип сети
|
|
|
|
|
#обязательный параметр при использовании блока
|
|
|
|
|
#тип - строка
|
|
|
|
|
net_type = "PUBLIC"
|
|
|
|
|
|
|
|
|
|
#id сети
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#идентификатор сегмента сети. Если net_type — PUBLIC, а net_id — 0,
|
|
|
|
|
#то будет выбран сегмент внешней сети по умолчанию. Если net_type
|
|
|
|
|
#имеет значение PRIVATE и net_id=0, будет выбран первый vins, определенный для этой ресурсной группы
|
|
|
|
|
#в противном случае net_id идентифицирует либо существующий сегмент внешней сети, либо vins
|
|
|
|
|
#тип - целое число
|
|
|
|
|
net_id = 1234
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
```go
|
|
|
|
|
quota = {
|
|
|
|
|
#максимальное количество ядер процессора
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#значение по умолчанию: -1
|
|
|
|
|
#тип - целое число
|
|
|
|
|
cpu = 5
|
|
|
|
|
|
|
|
|
|
#максимальный размер памяти в мегабайтах
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#значение по умолчанию: -1
|
|
|
|
|
#тип - целое число
|
|
|
|
|
ram = 1024
|
|
|
|
|
|
|
|
|
|
#максимальный размер объединенных виртуальных дисков в ГБ
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#значение по умолчанию: -1
|
|
|
|
|
#тип - целое число
|
|
|
|
|
disk = 180
|
|
|
|
|
|
|
|
|
|
#максимальное количество отправленных/полученных сетевых узлов
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#значение по умолчанию: -1
|
|
|
|
|
#тип - целое число
|
|
|
|
|
ext_traffic = 21
|
|
|
|
|
|
|
|
|
|
#максимальное количество назначенных общедоступных IP-адресов
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#значение по умолчанию: -1
|
|
|
|
|
#тип - целое число
|
|
|
|
|
ext_ips = 29
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
#### Внутренние сети vins
|
|
|
|
|
|
|
|
|
|
1. resource `dynamix_vins`
|
|
|
|
|
- В блоке `nat_rule` поля `int_ip` и `ext_port_start` стали обязательными. Ранее были опциональными. Необходимо их заполнить.
|
|
|
|
|
```go
|
|
|
|
|
nat_rule {
|
|
|
|
|
#ip внутренний
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
int_ip = "192.168.0.28"
|
|
|
|
|
|
|
|
|
|
#начало диапазона внешних портов
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
ext_port_start = 8001
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### Виртуальные машины KVM KVMVM
|
|
|
|
|
|
|
|
|
|
1. resource `dynamix_kvmvm`
|
|
|
|
|
- Необходимо полностью удалить удалить блок `disks` из конфигурационного файла. Теперь диски нужно создавать через функцию `dynamix_disk`. В `dynamix_kvmvm` их можно указать в поле `extra_disks`
|
|
|
|
|
- Блоки `affinity_rules`, `anti_affinity_rules`, `network`, `tags`,`port_forwarding`, `user_access`, `snapshot`, `rollback`, `cd`, стали атрибутами и теперь их следует задавать через знак равно.
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
affinity_rules {
|
|
|
|
|
#тип правила
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#возможные значения - compute или node
|
|
|
|
|
#тип - строка
|
|
|
|
|
topology = "compute"
|
|
|
|
|
|
|
|
|
|
#строгость правила
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#возможные значения - RECOMMENDED и REQUIRED
|
|
|
|
|
#тип - строка
|
|
|
|
|
policy = "RECOMMENDED"
|
|
|
|
|
|
|
|
|
|
#режим проверки
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#возможные значения - ANY, EQ, NE
|
|
|
|
|
#тип - строка
|
|
|
|
|
mode = "ANY"
|
|
|
|
|
|
|
|
|
|
#ключ правила
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
key = "testkey"
|
|
|
|
|
|
|
|
|
|
#ключ правила
|
|
|
|
|
#необязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
value = "testvalue"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
affinity_rules = [{
|
|
|
|
|
#тип правила
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#возможные значения - compute или node
|
|
|
|
|
#тип - строка
|
|
|
|
|
topology = "compute"
|
|
|
|
|
|
|
|
|
|
#строгость правила
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#возможные значения - RECOMMENDED и REQUIRED
|
|
|
|
|
#тип - строка
|
|
|
|
|
policy = "RECOMMENDED"
|
|
|
|
|
|
|
|
|
|
#режим проверки
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#возможные значения - ANY, EQ, NE
|
|
|
|
|
#тип - строка
|
|
|
|
|
mode = "ANY"
|
|
|
|
|
|
|
|
|
|
#ключ правила
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
key = "testkey"
|
|
|
|
|
|
|
|
|
|
#ключ правила
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
value = "testvalue"
|
|
|
|
|
}]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
anti_affinity_rules {
|
|
|
|
|
#тип правила
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#возможные значения - compute или node
|
|
|
|
|
#тип - строка
|
|
|
|
|
topology = "compute"
|
|
|
|
|
|
|
|
|
|
#строгость правила
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#возможные значения - RECOMMENDED и REQUIRED
|
|
|
|
|
#тип - строка
|
|
|
|
|
policy = "RECOMMENDED"
|
|
|
|
|
|
|
|
|
|
#режим проверки
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#возможные значения - ANY, EQ, NE
|
|
|
|
|
#тип - строка
|
|
|
|
|
mode = "ANY"
|
|
|
|
|
|
|
|
|
|
#ключ правила
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
key = "testkey"
|
|
|
|
|
|
|
|
|
|
#ключ правила
|
|
|
|
|
#необязательный параметр
|
|
|
|
|
#тип -строка
|
|
|
|
|
value = "testvalue"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
anti_affinity_rules = [{
|
|
|
|
|
#тип правила
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#возможные значения - compute или node
|
|
|
|
|
#тип - строка
|
|
|
|
|
topology = "compute"
|
|
|
|
|
|
|
|
|
|
#строгость правила
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#возможные значения - RECOMMENDED и REQUIRED
|
|
|
|
|
#тип - строка
|
|
|
|
|
policy = "RECOMMENDED"
|
|
|
|
|
|
|
|
|
|
#режим проверки
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#возможные значения - ANY, EQ, NE
|
|
|
|
|
#тип - строка
|
|
|
|
|
mode = "ANY"
|
|
|
|
|
|
|
|
|
|
#ключ правила
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
key = "testkey"
|
|
|
|
|
|
|
|
|
|
#ключ правила
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип -строка
|
|
|
|
|
value = "testvalue"
|
|
|
|
|
}]
|
|
|
|
|
```
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
network {
|
|
|
|
|
#тип сети VINS/EXTNET (для любого драйвера) и VFNIC (для KVM_X86)
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
net_type = "VINS"
|
|
|
|
|
|
|
|
|
|
#id сети
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
net_id = 1234
|
|
|
|
|
|
|
|
|
|
#ip адрес входящий в сеть
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
ip_address = "127.0.0.1"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
network = [{
|
|
|
|
|
#тип сети VINS/EXTNET (для любого драйвера) и VFNIC (для KVM_X86)
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
net_type = "VINS"
|
|
|
|
|
|
|
|
|
|
#id сети
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
net_id = 1234
|
|
|
|
|
|
|
|
|
|
#ip адрес входящий в сеть
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
ip_address = "127.0.0.1"
|
|
|
|
|
}]
|
|
|
|
|
```
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
tags {
|
|
|
|
|
#Ключ для тэга
|
|
|
|
|
#Обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
key = "key"
|
|
|
|
|
|
|
|
|
|
#значения тэга
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
value = "value"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
tags = [{
|
|
|
|
|
#ключ для тэга
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
key = "key"
|
|
|
|
|
|
|
|
|
|
#значения тэга
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
value = "value"
|
|
|
|
|
}]
|
|
|
|
|
```
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
port_forwarding {
|
|
|
|
|
#номер внешнего начального порта для правила
|
|
|
|
|
#Обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
public_port_start = 2023
|
|
|
|
|
|
|
|
|
|
#номер внешнего последнего порта для правила
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
#по умолчанию - -1
|
|
|
|
|
public_port_end = 2023
|
|
|
|
|
|
|
|
|
|
#номер внутреннего базового порта
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
local_port = 80
|
|
|
|
|
|
|
|
|
|
#сетевой протокол
|
|
|
|
|
#Обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
proto = "tcp"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
port_forwarding = [{
|
|
|
|
|
#номер внешнего начального порта для правила
|
|
|
|
|
#Обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
public_port_start = 2023
|
|
|
|
|
|
|
|
|
|
#номер внешнего последнего порта для правила
|
|
|
|
|
#опциональный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
#по умолчанию - -1
|
|
|
|
|
public_port_end = 2023
|
|
|
|
|
|
|
|
|
|
#номер внутреннего базового порта
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
local_port = 80
|
|
|
|
|
|
|
|
|
|
#сетевой протокол
|
|
|
|
|
#Обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
proto = "tcp"
|
|
|
|
|
}]
|
|
|
|
|
```
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
user_access {
|
|
|
|
|
#имя юзера, которому предоставляем доступ
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
username = "kasim_baybikov_1@decs3o"
|
|
|
|
|
|
|
|
|
|
#права: 'R' - только на чтение, 'RCX' - чтение/запись, 'ARCXDU' - админ
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
access_type = "ARCXDU"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
user_access = [{
|
|
|
|
|
#имя юзера, которому предоставляем доступ
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
username = "kasim_baybikov_1@decs3o"
|
|
|
|
|
|
|
|
|
|
#права: 'R' - только на чтение, 'RCX' - чтение/запись, 'ARCXDU' - админ
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
access_type = "ARCXDU"
|
|
|
|
|
}]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
snapshot {
|
|
|
|
|
#лейбл снапшота
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
label = "label1"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
snapshot = [{
|
|
|
|
|
#лейбл снапшота
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
label = "label1"
|
|
|
|
|
}]
|
|
|
|
|
```
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
rollback {
|
|
|
|
|
#Лейбл снапшота
|
|
|
|
|
#Обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
label = "label1"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
rollback = {
|
|
|
|
|
#Лейбл снапшота
|
|
|
|
|
#Обязательный параметр
|
|
|
|
|
#тип - строка
|
|
|
|
|
label = "label1"
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
##### Было
|
|
|
|
|
```go
|
|
|
|
|
cd {
|
|
|
|
|
#id образа диска CD rom
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
cdrom_id = 344
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
##### Стало
|
|
|
|
|
```go
|
|
|
|
|
cd = {
|
|
|
|
|
#id образа диска CD rom
|
|
|
|
|
#обязательный параметр
|
|
|
|
|
#тип - целое число
|
|
|
|
|
cdrom_id = 344
|
|
|
|
|
}
|
|
|
|
|
```
|