44 KiB
Модуль decort_vins
Обзор модуля decort_vins
Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия:
- создавать
- на уровне ресурсной группы (если РГ задана)
- на уровне аккаунта (если РГ не задана)
- удалять (в корзину или безвозвратно)
- восстанавливать из корзины
- запрашивать информацию
- включать/отключать
- соединять (необходимы права администратора)
- изменять:
- включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора)
- включать/отключать режим Custom Config для виртуального маршрутизатора (необходимы права администратора)
- сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора)
- зону
Параметры модуля decort_vins
Ниже приведен список параметров для модуля decort_vins (за исключением общих параметров):
| Параметр | Тип, допустимые значения | Описание |
|---|---|---|
| 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) Значения: presentabsentenableddisabled |
Целевое состояние внутренней сети. Значение по умолчанию если объект не существует или безвозвратно удалён: 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