# Модуль decort_vins ## Обзор модуля decort_vins Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия: - создавать - на уровне ресурсной группы (если РГ задана) - на уровне аккаунта (если РГ не задана) - удалять (в корзину или безвозвратно) - восстанавливать из корзины - запрашивать информацию - включать/отключать - соединять (необходимы права администратора) - изменять: - включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора) - включать/отключать режим **Custom Config** для виртуального маршрутизатора (необходимы права администратора) - сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора) - зону ## Параметры модуля decort_vins Ниже приведен список параметров для модуля **decort_vins** (за исключением [общих параметров](./введение.md#общие-параметры-модулей)): | Параметр | Тип, допустимые значения | Описание | | ------ | ------ | ------ | | account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная внутреняя сеть. При идентификации внутренней сети по имени (см. параметр `vins_name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| | account_name | (string) | Имя аккаунта, которому принадлежит данная внутренняя сеть. При идентификации внутренней сети по имени (см. параметр `vins_name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр account_id). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| |description | (string)| Текстовое описание внутренней сети. Данный аргумент является опциональным и учитывается только при создании внутренней сети, а при всех прочих операциях игнорируется.| | ext_net_id | (int) | Идентификатор внешней сети, к которой должна быть подключена внутренняя сеть. Если задать значение `0`, то платформой будет выбрана внешняя сеть по умолчанию. | | ext_ip_addr | (string) | IP-адрес внешней сети, заданной через параметр `ext_net_id`. Если не задан, то IP-адрес для внешней сети будет выбран платформой автоматически. | ipcidr | (string) | Адрес сети для создаваемой внутренней сети. Если этот параметр не задан, то платформа назначит адрес автоматически. Обратите внимание, что внутренние сети, принадлежащие одному и тому же аккаунту, не могут иметь пересекающихся сетей.| |rg_id | (int) | Идентификатор ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_id` и `rg_name`, то `rg_name` игнорируется.| | rg_name | (string) | Имя ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_name` и `rg_id`, то `rg_name` игнорируется.| | state | (string)
Значения:
`present`
`absent`
`enabled`
`disabled` | Целевое состояние внутренней сети.
Значение по умолчанию если объект не существует или безвозвратно удалён: `present` | | permanently | (bool)
Default: `false` | Параметр, использующийся для удаления внутренней сети. При значении `true` - внутренняя сеть удалится безвозвратно, а при `false` - попадёт в корзину. | | vins_id | (int) | Идентификатор внутренней сети. Соответствующая внутренная сеть должна существовать. Таким образом, с помощью `vins_id` нельзя создать новую внутреннюю сеть, а только управлять уже имеющимися. Если задан данный параметр, то параметры `vins_name`, `account_name`, `account_id`, `rg_name` и `rg_id` игнорируются.| | vins_name| (string) | Имя внутренней сети. Для идентификации внутренней сети требуется либо `vins_name` и информация об аккаунте/ресурсной группе, которой принадлежит сеть, либо `vins_id`. Обратите внимание, что это имя уникально только в рамках ресурсной группы или аккаунта, на уровне которого существует данная внутренняя сеть.| | mgmtaddr | (list) | Список существующих IP-адресов виртуального маршрутизатора во внутренней сети, через которые необходимо разрешить SSH-доступ к виртуальному маршрутизатору. | custom_config | (bool)
Default: `false` | Включить/отключить режим пользовательской конфигурации виртуального маршрутизатора. | | config_save | (bool)
Default: `false` | Выполнить сохранение текущей конфигурации виртуального маршрутизатора для возможности последующего отката к ней. | | connect_to | (list) | Список словарей, содержащих информацию о внутренних сетях, к которым необходимо подключить данную. См. примеры. | zone_id | (int) | Идентификатор зоны.| | security_group_mode | (bool) | Включить/выключить группы безопасности. Не поддерживается изменение в существующей внутренней сети.
Значение по умолчанию если объект не существует или безвозвратно удалён: `false` | ## Возвращаемые значения модуля decort_vins Модуль **decort_vins** возвращает информацию о внутренней сети в виде словаря `facts` со следующими ключами:
Ключ Тип
данных
Описание
account_id int Идентификатор аккаунта.
account_name str Имя аккаунта.
created_by str Имя пользователя, создавшего сеть.
created_datetime str Дата и время создания.
created_timestamp int Unix-время создания.
default_gw str Шлюз по умолчанию.
default_qos dict[str, any] QoS по умолчанию для сети.
egress_rate int Скорость исходящего трафика.
guid str Идентификатор.
ingress_burst int Пиковая нагрузка входящего трафика.
ingress_rate int Скорость входящего трафика.
deleted_by str Имя пользователя, удалившего сеть.
deleted_datetime str Дата и время удаления.
deleted_timestamp int Unix-время удаления.
description str | null Описание.
grid_id int Идентификатор ЦОД.
guid int Идентификатор.
id int Идентификатор.
lock_status str Статус блокировки.
manager_id int Идентификатор менеджера.
manager_type str Тип менеджера.
milestones int Количество событий.
name str Имя.
net_ip str IP-адрес сети.
net_prefix int Префикс сети.
pre_reservation_count int Количество забронированных IP-aдресов в сети.
redundant bool
rg_id int Идентификатор ресурсной группы.
rg_name str Имя ресурсной группы.
secondary_vnfdev_id int
security_group_mode bool Включены ли группы безопасности.
status str Статус.
updated_by str Пользователь, обновивший сеть.
updated_datetime str Дата и время обновления сети.
updated_timestamp int Unix-время обновления сети.
user_managed bool Управляется ли пользователем.
vms list[int] Список идентификаторов виртуальных машин с внутренней сетью.
vnfdev dict[str, any] Словарь описывающий маршрутизатор.
account_id int Идентификатор аккаунта.
capabilities list[str] Список типов виртуальных функций.
config dict[str, any] Кофигурация маршрутизатора.
mgmt dict[str, str] Параметры управления устройством.
ip_addr str IP-адрес.
password str Пароль.
ssh_public_key str SSH ключ.
user_name str Имя.
resources dict[str, any] Выделенные ресурсы.
cpu_count int Количество виртуальных процессоров.
node_id int Идентификатор физического узла.
ram_size_mb int Объём оперативной памяти в МБ.
uuid str Идентификатор.
config_saved bool
custom_pre_cfg bool
description str Описание.
grid_id int Идентификатор ЦОД.
guid int Идентификатор.
id int Идентификатор.
interfaces list[dict[str, any]] Сетевые интерфейсы маршрутизатора.
bus_num int Номер шины.
conn_id int Идентификатор соединения.
conn_type str Тип соединения.
default_gw str Шлюз по умолчанию.
enabled bool Включен ли сетевой интерфейс.
flip_group_id int Идентификатор группы с плавающим IP-адресом.
guid str Идентификатор.
ip_addr str IP-адрес.
libvirt_settings dict[str, any] Настройки libvirt.
event_idx str
guid str Идентификатор.
ioeventfd str
queues int
rx_queue_size int
tx_mode str
tx_queue_size int
listen_ssh bool
mac str MAC-адрес.
mtu int MTU сетевого интерфейса.
name str Имя.
net_id int Идентификатор сети.
net_prefix int Префикс сети.
net_type str Тип сети.
node_id int Идентификатор физического узла.
pci_slot_num int Номер слота PCI.
qos dict[str, any] Quality of Service
egress_rate int Скорость исходящего трафика.
guid str Идентификатор.
ingress_burst int Пиковая нагрузка входящего трафика.
ingress_rate int Скорость входящего трафика.
sdn_logical_port_id str Идентификатор логического порта SDN.
security_group_ids list[int] Список идентификаторов групп безопасности.
security_group_mode bool Включены ли группы безопасности.
target str
type str Тип.
vnf_ids list[int] Идентификаторы виртуальных функций.
live_migration_job_id int Идентификатор задачи live-миграции.
lock_status str Статус блокировки.
milestones int Количество событий.
name str Имя.
status str Статус.
tech_status str Технический статус.
type str Тип.
vins_ids list[int] Идентификаторы внутренних сетей.
vnc_password str Пароль, используемый для подключения к ВМ через VNC.
zone_id int Идентификатор зоны.
vnfs dict[str, dict[str, any] | null] Словарь описывающий функции виртуальной сети.
dhcp dict[str, any] Словарь описывающий DHCP-сервер.
account_id int Идентификатор аккаунта.
config dict[str, any] Кофигурация DHCP-сервера.
default_gw str Шлюз по умолчанию.
dns_servers list[str] Список dns.
ip_pool_end str
ip_pool_start str
lease_time int
net_ip str IP-адрес сети.
net_prefix int Префикс сети.
reservations list[dict[str, any]]
account_id int Идентификатор аккаунта.
client_type str Тип клиентов.
description str Описание.
domain_name str Имя домена.
hostname str Имя хоста.
ip_addr str IP-адрес.
mac str MAC-адрес.
type str Тип.
vm_id int Идентификатор виртуальной машины.
created_datetime str Дата и время создания.
created_timestamp int Unix-время создания.
devices dict[str, any]
primary dict[str, any]
device_id int
iface01_name str
iface02_name str
secondary dict[str, any]
grid_id int Идентификатор ЦОД.
guid int Идентификатор.
id int Идентификатор.
lock_status str Статус блокировки.
milestones int Количество событий.
owner_id int
owner_type str
pure_virtual bool
routes list[dict[str, any]]
status str Статус.
tech_status str Технический статус.
type str Тип.
zone_id int Идентификатор зоны.
gw dict[str, any] Словарь описывающий шлюз.
account_id int Идентификатор аккаунта.
config dict[str, any] Кофигурация шлюза.
default_gw str Шлюз по умолчанию.
ext_net_id int Идентификатор внешней сети.
ext_net_ip str IP-адрес внешней сети.
ext_net_prefix int Префикс внешней сети.
qos dict[str, any] Quality of Service
created_datetime str Дата и время создания.
created_timestamp int Unix-время создания.
devices dict[str, any]
primary dict[str, any]
device_id int
iface01_name str
iface02_name str
secondary dict[str, any]
grid_id int Идентификатор ЦОД.
guid int Идентификатор.
id int Идентификатор.
lock_status str Статус блокировки.
milestones int Количество событий.
owner_id int
owner_type str
pure_virtual bool
routes list[dict[str, any]]
status str Статус.
tech_status str Технический статус.
type str Тип.
zone_id int Идентификатор зоны.
nat dict[str, any] Словарь описывающий NAT.
account_id int Идентификатор аккаунта.
config dict[str, any] Кофигурация NAT.
net_ip str IP-адрес сети.
net_prefix int Префикс сети.
rules list[dict[str, any]] Правила.
created_datetime str Дата и время создания.
created_timestamp int Unix-время создания.
devices dict[str, any]
primary dict[str, any]
device_id int
iface01_name str
iface02_name str
secondary dict[str, any]
grid_id int Идентификатор ЦОД.
guid int Идентификатор.
id int Идентификатор.
lock_status str Статус блокировки.
milestones int Количество событий.
owner_id int
owner_type str
pure_virtual bool
routes list[dic[str, any]]
status str Статус.
tech_status str Технический статус.
type str Тип.
zone_id int Идентификатор зоны.
vxlan_id int Идентификатор VXLAN.
zone_id int Идентификатор зоны.
## Пример использования модуля decort_vins В данном примере создаётся внутренняя сеть с именем "MyVins01" (vins_name: "MyVins01"). Внутренняя сеть создаётся на уровне ресурсной группы "MyRg01" (rg_name: "MyRg01"), принадлежащей аккаунту "MyMainAccount" (account_name: "MyMainAccount"). Внутренняя сеть будет иметь подключение во внешнюю сеть по умолчанию (ext_net_id: 0). Результат исполнения модуля decort_vins записывается в переменную my_vins, которую можно дальше использовать в Ansible playbooks. ``` - name: Manage ViNS on resource group level decort_vins: account_name: "MyMainAccount" rg_name: "MyRg01" authenticator: jwt jwt: "{{ my_jwt.jwt }}" controller_url: "https://ds1.digitalenergy.online" ext_net_id: 0 vins_name: "MyVins01" register: my_vins ``` В данном примере идёт создание внутренней сети, а потом её привязка к внутренним сетям с id 864 и 196. ``` - name: Manage ViNS on resource group level decort_vins: authenticator: jwt jwt: "{{ my_jwt.jwt }}" controller_url: "https://cloud.digitalenergy.online" vins_name: "ViNS_connected_by_decort_vins_module" rg_id: 98 connect_to: - id: 864 ipaddr: 192.168.5.66 netmask: 24 - id: 196 ipaddr: 192.168.9.133 netmask: 24 register: managed_vins ```