You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
terraform-provider-dynamix/wiki/1.0.0/07.01.04-Resource_dynamix_v...

24 KiB

Resource функция dynamix_vins служит для управления виртуальными сетевыми сегментами (Virtual Network Segment) в платформе DYNAMIX.

Аргументы

Resource функция dynamix_vins принимает следующие аргументы:

Аргумент Тип Обязательный Описание
name string ✔️ Имя виртуального сетевого сегмента (ViNS), по которому требуется получить информацию. Имя не может быть пустым.
ViNS идентифицируется по комбинации имени и идентификатора ресурсной группы (rg_id) или подписчика (account_id).
Обратите внимание, что имя ViNS является уникальным в рамках "account" и ресурсной группы.
rg_id int Идентификатор ресурсной группы, в которой должен находиться данный ViNS.
Если требуется создать ViNS на уровне подписчика ("account"), то необходимо указать rg_id = 0.
Обратите внимание, что попытка изменить rg_id у существующего ресурса приведёт к его пересозданию.
account_id int Данный параметр является обязательным независимо от того, создаётся ли ViNS на уровне подписчика или на уровне ресурсной группы.
Идентификатор подписчика ("account"), в котором должен находиться данный ViNS.
Обратите внимание, что попытка изменить account_id у существующего ресурса приведёт к его пересозданию.
dns []string Список IP адресов DNS
ext_net_id int Идентификатор внешней сети, в которую должен быть подключён ViNS. Если подключение во внешнюю сеть не требуется, то необходимо задать ext_net_id = 0.
Обратите внимание, что из всех ViNS, созданных на уровне одной и той же ресурсной группы, только один может иметь подключение к внешней сети. ViNS, созданные на уровне "account", не могут иметь подключений к внешним сетям.
ext_ip_addr string IP внешней сети
ipcidr string IP CIDR, который требуется присвоить внутреннему сегменту данного ViNS.
Данный параметр не является обязательным и принимается во внимание только на стадии создания нового ViNS. Если он не задан, то платформа установит значение самостоятельно.
pre_reservations_num int Кол-во IP адресов, которое будет зарезервировано при создании
gid int GRID ID
enabled bool Флаг, отвечающий за возможность переводить ресурс в состояния enable и disable
permanently bool Безвозвратное удаление диска. Используется при удалении
force bool Удаление ресурса, в случае если он к чему-то присоединен произойдет отсоединение его от других ресурсов и удаление
ip Struct{} см. ниже Структура для резервирования IP адресов
nat_rule Struct{} см. ниже Структура для того, чтобы задавать правила NAT
desc string Текстовое описание данного ViNS.
Данный параметр не является обязательным, значение по умолчанию - пустая строка.
restore bool Флаг, для восстановления ресурса
vnfdev_restart bool Флаг, для рестарта VNF
vnfdev_redeploy bool Флаг, для редеплоя VNF

Описание структуры ip

Аргумент Тип Обязательный Описание
type string ✔️ Тип резервирования IP адреса
ip_addr string IP адрес, который надо зарезервировать
mac_addr string MAC адрес, который надо зарезервировать
compute_id int ID компьюта, который надо зарезервировать

Описание структуры nat_rule

Аргумент Тип Обязательный Описание
int_ip string ✔️ Внутренний IP, для NAT правила
int_port int Внутренний порт, для NAT правила
ext_port_start int ✔️ Начало диапазона внешних портов, для NAT правила
ext_port_end int Конец диапазона внешних портов, для NAT правила
proto string Протокол для NAT. tcp или udp

Пользователь облачной платформы, от лица которого происходит обращение к данной функции, должен иметь доступ к указанной учётной записи ("account") и/или ресурсной группе. В противном случае возникнет ошибка доступа.

Возвращаемые значения

В случае успешного выполнения Resource функция dynamix_vins возвращает в указанную при вызове переменную следующие значения:

Параметр Тип Описание
vnf_dev []Struct{} см. ниже VNFDEV
_ckey string CKey
account_id int Уникальный идентификатор подписчика-владельца ViNS.
account_name string Имя подписчика ("account"), которому принадлежит ViNS.
computes []Struct{} см. ниже Информация о компьютах
default_gw string Шлюз по умолчанию
default_qos []Struct{} см. ниже qos виртуальной сети
desc string Текстовое описание ViNS.
gid int Grid ID
guid int ID ресурса
lock_status string Статус доступа виртуальной сети
manager_id int ID manager
manager_type string Type of manager
milestones int Milestones
name string Имя ViNS.
net_mask int Маска подсети
network string Сеть Vins
pre_reservations_num int Кол-во зарезервированных ip адресов
redundant bool Redudant
rg_id int Идентификатор ресурсной группы, на уровне которой создан ViNS. Для ViNS, существующих на уровне "account", данный параметр будет равен 0.
rg_name string Имя ресурсной группы
sec_vnf_dev_id int ID sec vnf
status string Статус
user_managed bool Флаг user managed
vnfs []Struct{} см. ниже VNFS
vxlan_id int ID vxlan
routes []Struct{} см. ниже Список статических маршрутов

Описание структуры routes

Параметр Тип Описание
compute_ids []int Список ID compute, которым предоствавлен доступ
route_id int ID статического маршрута
guid string ID ресурса
destination string IP целевой сети
netmask string Маска сети
gateway string IP шлюза

Описание структуры vnf_dev

Параметр Тип Описание
_ckey string Ckey
account_id int ID аккаунта
capabilities []string Возможности vnf_dev
config Struct{} см. ниже Конфиг VNF
config_saved bool Флаг, отвечающий за то сохранен ли конфиг
custom_pre_cfg bool Custom
desc string Описание
gid int Grid ID
guid int ID ресурса
vnf_id int ID vnf
interfaces []Struct{} см. ниже Информация о интерфейсах
lock_status string Статус доступа vnf_dev
milestones int Этапы
vnf_name string Имя VNF
status string Статус
tech_status string Технический статус
type string Тип vnf
vins []int Список виртуальных сетей

Описание структуры config

Параметр Тип Описание
mgmt Struct{} см. ниже Config Mgmt
resources []Struct{} см. ниже Config resources

Описание структуры mgmt

Параметр Тип Описание
ip_addr string IP адрес mgmt
password string Пароль юзера
ssh_key string Публичный SSH ключ
user string Имя юзера

Описание структуры resources

Параметр Тип Описание
cpu int Кол-во cpu ресурса
ram int Кол-во ram ресурса
stack_id int ID stack ресурса
uuid string UUID ресурса

Описание структуры interfaces

Параметр Тип Описание
conn_id int ID коннекта
conn_type string Тип коннекта
def_gw string Шлюз по умолчанию
flipgroup_id int ID flipgroup
guid string ID ресурса
ip_address string IP адрес интерфейса
listen_ssh bool Флаг, говорящий о том, слушается ли ssh
mac string MAC адрес интерфейса
name string Имя интерфейса
net_id int ID сети
net_mask int Маска
net_type string Тип сети
pci_slot int Слот pci
qos Struct{} см. ниже QOS
target string Таргет интерфейса
type string Тип интерфейса
vnfs []int Список ID vnf

Описание структуры computes

Параметр Тип Описание
compute_id int ID компьюта
compute_name string Имя компьюта

Описание структуры qos

Параметр Тип Описание
e_rate int E rate
guid string ID ресурса
in_brust int In brust
in_rate int In rate

Описание структуры vnfs

Параметр Тип Описание
dhcp []Struct{} см. ниже информаиця о DHCP
gw []Struct{} см. ниже GW
nat []Struct{} см. ниже NAT

Описание структуры dhcp

Параметр Тип Описание
_ckey string CKey
account_id int Уникальный идентификатор подписчика-владельца ViNS.
config Struct{} см. ниже Информация о DHCP конфиге
created_time int Время создания
devices []Struct{} см. ниже Информация о девайсах
gid int GRID ID
guid int ID ресурса
dhcp_id int ID dhcp
lock_status string Статус доступа виртуальной сети
milestones int Milestones
owner_id int ID владельца
owner_type string Тип владельца
pure_virtual bool Флаг, показывающий является ли ресурс чисто виртуальным
status string Статус
tech_status string Технический статус
type string Тип ресурса

Описание структуры dhcp config

Параметр Тип Описание
default_gw string Шлюз по умолчанию
dns []string Список dns
ip_end string Конец диапазона IP адресов
ip_start string Старт диапазона IP адресов
lease int срок
netmask int Маска сети
network string Сеть
reservations []Struct{} см. ниже Информация о резервациях

Описание структуры reservations

Параметр Тип Описание
client_type string Тип клиента
desc string Описание
domainname string Имя домена
hostname string Имя хоста
ip string IP адрес
mac string MAC адрес
type string Тип
vm_id int ID виртуальной машины

Описание структуры devices

Параметр Тип Описание
primary Struct{} см. ниже Первичная информация

Описание структуры primary

Параметр Тип Описание
dev_id int ID dev
iface01 string Интерфейс 1
iface02 string Интерфейс 2

Описание структуры gw

Параметр Тип Описание
_ckey string CKey
account_id int Уникальный идентификатор подписчика-владельца ViNS.
config Struct{} см. ниже Информация о конфиге
created_time int Время создания
devices []Struct{} см. ниже Информация о девайсах
gid int GRID ID
guid int ID ресурса
gw_id int ID GW
lock_status string Статус доступа виртуальной сети
milestones int Milestones
owner_id int ID владельца
owner_type string Тип владельца
pure_virtual bool Флаг, показывающий является ли ресурс чисто виртуальным
status string Статус
tech_status string Технический статус
type string Тип ресурса

Описание структуры gw config

Параметр Тип Описание
default_gw string Шлюз по умолчанию
ext_netmask int Маска внешней сети
qos Struct{} см. ниже QOS

Описание структуры nat

Параметр Тип Описание
_ckey string CKey
account_id int Уникальный идентификатор подписчика-владельца ViNS.
created_time int Время создания
config Struct{} см. ниже Информация о конфиге
devices []Struct{} см. ниже Информация о девайсах
gid int GRID ID
guid int ID ресурса
nat_id int ID NAT
lock_status string Статус доступа виртуальной сети
milestones int Milestones
owner_id int ID владельца
owner_type string Тип владельца
pure_virtual bool Флаг, показывающий является ли ресурс чисто виртуальным
status string Статус
tech_status string Технический статус
type string Тип ресурса

Описание структуры nat config

Параметр Тип Описание
net_mask int Маска сети
network string Сеть
rules []Struct{} см. ниже Правила NAT

Описание структуры rules

Параметр Тип Описание
rule_id int ID правила
local_ip string Локальный IP адрес
local_port int Локальный порт
protocol string Протокол
public_port_end int Конец диапазона портов
public_port_start int Начало диапазона портов
vm_id int ID виртуальной машины
vm_name string Имя виртуальной машины

Пример использования

Пример вызова Resource функции dynamix_vins:

resource "dynamix_vins" "vins" {
  #имя создаваемого ресурса
  #обязательный параметр
  #тип - строка
  name = "Test_name"

  #id ресурсной группы для создаения ресурса
  #опциональный параметр
  #тип - целое число
  rg_id = 10101

  #id аккаунта для создаения ресруса
  #опциональный параметр
  #тип - целое число
  account_id = 2023

  #id внешней сети для подключения к ней ресурса
  #опциональный параметр
  #тип - целое число
  ext_net_id = 2222

  #ip внешней сети для подключения к нему ресурса
  #опциональный параметр
  #тип - строка
  ext_ip_addr = "1.1.1.1"

  #private network IP CIDR
  #опциональный параметр
  #тип - строка
  ipcidr = "192.168.0.1"

  #количество зарезервированных адресов на момент создания
  #опциональный параметр
  #значение по умолчанию 32
  #тип - целое число
  pre_reservations_num = 2

  #grid (platform) ID
  #опциональный параметр
  #тип - целое число
  gid = 2002

  #описание
  #опциональный параметр
  #тип - строка
  desc = "Description"

  #ручное подключение и отключение ресурса
  #опциональный параметр
  #тип - булев
  enable = true

  #удаление навсегда
  #опциональный параметр
  #тип - булев
  permanently = true

  #удаляет за собой все зависимые ресурсы
  #опциональный параметр
  #тип - булев
  force = true

  #структура для резервирования ip
  #опциональный параметр
  #тип - структура ip
  ip {
    #тип подключения
    #обязательный параметр
    #тип - строка
    type = "DHCP"

    #ip который необходимо зарезервировать
    #опциональный параметр
    #тип - строка
    ip_addr = "192.168.5.5"

    #mac который необходимо зарезервировать
    #опциональный параметр
    #тип - строка
    mac_addr = "ff:ff:ff:ff:ff:ff"
  }

  #структура для добавления natRule
  #опциональный параметр
  #тип - структура правил nat
  nat_rule {
    #ip внутренний
    #опциональный параметр
    #тип - строка
    int_ip = "192.168.0.28"

    #внутренний порт
    #опциональный параметр
    #тип - целое число
    int_port = 80

    #начало диапазона внешних портов
    #опциональный параметр
    #тип - целое число
    ext_port_start = 8001

    #конец диапазона внешних портов
    #опциональный параметр
    #тип - целое число
    ext_port_end = 8001

    #протокол natRule
    #опциональный параметр
    #тип - строка
    proto = "tcp"
  }

  #восстановление ресурса
  #опциональный параметр
  #тип - булев
  restore = true

  #перезапуск vnfDev
  #опциональный параметр
  #тип - булев
  vnfdev_restart = true

  #редеплой vnfDev
  #опциональный параметр
  #тип - булев
  vnfdev_redeploy = true

  #список dns
  #опциональный параметр
  #применяется при создании и редактировании ресурса
  #если при создании указать пустой список, то ресурс создается с полем vnfs.dhcp.config.dns, имеющим значение по умолчанию
  #если при обновлении указать пустой список, то ресурс обновит в модели поле vnfs.dhcp.config.dns с текущего значения на пустой список
  #тип - список строк
  #dns = ["1.1.1.1", "2.2.2.2"]

}

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