|
|
# 03.06 Модуль decort_vins
|
|
|
## Обзор модуля decort_vins
|
|
|
|
|
|
Модуль decort_vins предназначен для создания, изменения, получения текущих характеристик и удаления виртуального сетевого сегмента (Virtual Network Segment, ViNS).
|
|
|
Позволяет:
|
|
|
- Создавать, удалять виртуальные сетевые сегменты.
|
|
|
- Изменять виртуальные сетевые сегменты.
|
|
|
- Запрашивать информацию о виртуальных сетевых сегментах.
|
|
|
- Восстанавливать удалённые виртуальные сетевые сегменты.
|
|
|
- Соединять виртуальные сетевые сегменты.
|
|
|
|
|
|
## Параметры модуля decort_vins
|
|
|
|
|
|
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_vins. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
|
`ansible-doc -t module decort_vins`
|
|
|
|
|
|
|
|
|
|Параметр | Тип, допустимые значения | Описание|
|
|
|
| ------ | ------ | ------ |
|
|
|
|account_id | (int) | Уникальный целочисленный идентификатор учётной записи (account), которой принадлежит данный ViNS. При идентификации виртуального сетевого сегмента по имени (см. параметр `vins_name`) должно быть задан либо идентификатор, либо имя учётной записи (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
|
|account_name | (string) | Имя учётной записи (account), которой принадлежит данный ViNS. При идентификации виртуального сетевого сегмента по имени (см. параметр `vins_name`) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр account_id). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
|
|annotation | (string)| Текстовое описание виртуального сетевого сегмента. Данный аргумент является опциональным и учитывается только при создании ViNS, а при всех прочих операциях игнорируется.|
|
|
|
|app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
|
|app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
|
| authenticator | Значения:<br/>`legacy`<br/>`oauth2`<br/>`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. |
|
|
|
|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данный виртуальный сервер. Данный параметр является обязательным. ext_net_id (int) Данный аргумент контролирует подключение виртуального сетевого сегмента во внешнюю сеть: * -1 (default) - ViNS не подключён ко внешней сети; * 0 - ViNS подключён ко внешней сети, которую платформа выбирает по умолчанию; * >0 - ViNS подключён ко внешней сети с заданным идентификатором;|
|
|
|
|ext_ip_addr | (string) | Данный аргумент позволяет выбрать IP адрес для подключения виртуального сетевого сегмента ко внешней сети (когда значение аргумента ext_net_id больше либо равно 0) и учитывается только при новых подключених - в рамках модуля `decort_vins` вы не можете изменить внешний IP адрес не меняя идентификатор внешней сети. Параметр является опциональным: если он не задан, то в случае ViNS, подключённого во внешнюю сеть, платформа назначит IP адрес автоматически.| При ручном задании данного параметра следует иметь ввиду, что если будет задан неверный или уже занятый IP адрес, то модуль вернёт ошибку.
|
|
|
|ipcidr | string | Адрес, которые надлежит присвоить внутренней сети сетевого сегмента. Данный аргумент является опциональным и используется только при создании нового виртуального сетевого сегмента, а при всех прочих операциях игнорируется. Если этот аргумент не задан, то платформа назначит адрес автоматически. Обратите внимание, что виртуальные сетевые сегменты, принадлежащие одной и той же учётной записи, не могут иметь пересекающихся диапазонов внутренних адресов.|
|
|
|
|jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
|
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу _Oauth2_, который должен использоваться в режиме `authenticator: oauth2`.<br/>Данный параметр является обязательным для указанного режима.<br/>Если параметр не задан в _playbook_, модуль будет использовать значение переменной окружения _DECORT_OAUTH2_URL_. |
|
|
|
|rg_id | (int) | Идентификатор ресурсной группы, в которой должен быть создан или уже существует ViNS. Если одновременно заданы `rg_id` и `rg_name`, то `rg_name` игнорируется.|
|
|
|
|rg_name | (string) | Имя ресурсной группы, в которой должен быть создан или уже существует ViNS. Если одновременно заданы `rg_name` и `rg_id`, то `rg_name` игнорируется.|
|
|
|
| state | Значения:<br/>`present` <- default<br/>`absent`<br/>`enabled`<br/>`disabled`<br/> | Целевое состояние ViNS. |
|
|
|
| verify_ssl | (bool)<br/>`True` <- default<br/>`False` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
|
|vins_id | (int) | Идентификатор виртуального сетевого сегмента. Соответствующий сетевой сегмент должен существовать (таким образом, с помощью `vins_id` нельзя создать новый сегмент, а только управлять уже имеющимися. Если задан данный параметр, то параметры `vins_name`, `account_name`, `account_id`, `rg_name` и `rg_id` игнорируются.|
|
|
|
|vins_name| (string) | Имя виртуального сетевого сегмента. Для идентификации виртуального сетевого сегмента требуется либо vins_name и информация об учётной записи/ресурсной группе, которой принадлежит сегмент, либо `vins_id`. Обратите внимание, что это имя уникально только в рамках ресурсной группы или учетной записи, на уровне которой существует данный сетевой сегмент.|
|
|
|
| ext_net_id | (int) | Уникальный целочисленный идентификатор внешней сети. |
|
|
|
| mgmtaddr | (str) | Адрес менеджмента интерфейса. В данный параметр указывается ip адрес менеджмента интерфейса, который предоставляет доступ по SSH. |
|
|
|
| custom_config | (bool) | Параметр, отвечающий за использование пользовательской конфигурации. По умолчанию: `False` |
|
|
|
| config_save | (bool) | Параметр, отвечающий за сохранение файла конфигурации. По умолчанию: `False` |
|
|
|
| connect_to | (list) | Список, в котором необходимо указывать виртуальные сетевые сегменты, которые Вы хотите соединить. См. примеры.
|
|
|
|workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль desc_vm будет оперативно передавать информацию о своем статусе и текущей фазе исполнения. Данный параметр является опциональным. Функциональность callbacks в текущей версии модуля не реализована.|
|
|
|
|workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL. Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов workflow_callback данные со своим внутренним состоянием и отслеживать инициированные им задачи. Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`. Функциональность callbacks в текущей версии модуля не реализована.|
|
|
|
|
|
|
## Возвращаемые значения модуля decort_vins
|
|
|
|
|
|
Модуль decort_vins возвращает информацию о виртуальном сетевом сегменте (Virtual Network Segment, ViNS) в виде словаря facts со следующими ключами:
|
|
|
|
|
|
| Ключ | Тип данных | Описание |
|
|
|
| --- | --- | --- |
|
|
|
| account_id | int | Уникальный целочисленный идентификатор учётной записи (_account_), которой принадлежит ViNS. |
|
|
|
| ext_ip_addr | (string) | IP адрес интерфейса, которым ViNS подключён во внешнюю сеть. Если ViNS не подключён к внешней сети, то пустая строка. |
|
|
|
| ext_net_id | (int) | Идентификатор внешней сети, к которой подключён ViNS. -1 означает, что ViNS в данный момент не подключён к внешней сети. |
|
|
|
| gid | (int) | Идентификатор физического кластера (Grid ID), на базе которого развёрнуты ресурсы данного ViNS. |
|
|
|
| id | (int) | Уникальный целочисленный идентификатор ViNS. |
|
|
|
| name | (string) | Имя ViNS. Обратите внимание, что это имя уникально только в рамках учётной записи или ресурсной группы, на уровне которых создан ViNS. |
|
|
|
| int_net_addr | (string) | Адрес внутренней сети ViNS. Обратите внимание, что адреса внутренних сетей всех ViNS, принадлежащих одной и той же учётной записи (независимо от того, создан ли ViNS на уровне учётной записи или ресурсной группы), не пересекаются. |
|
|
|
| rg_id | (int) | Уникальный целочисленный идентификатор учётной ресурсной группы, которой принадлежит данный ViNS. Если данный ViNS создан на уровне учётной записи, то `rg_id=0`. |
|
|
|
| state | (string) | Текущее состояние ViNS.<br/>Корректные состояния: `CREATED`, `ENABLED`, `DISABLED`, `DELETED`, `DESTROYED`. |
|
|
|
|
|
|
|
|
|
|
|
|
## Пример использования модуля decort_vins
|
|
|
|
|
|
В данном примере создаётся виртуальный сетевой сегмент с именем "MyVins01" (vins_name: "MyVins01").
|
|
|
|
|
|
Сетевой сегмент создаётся на уровне ресурсной группы "MyRg01" (rg_name: "MyRg01"), принадлежащей учётной записи "MyMainAccount" (account_name: "MyMainAccount"). Виртуальный сетевой сегмент будет иметь подключение во внешнюю сеть по умолчанию (ext_net_id: 0).
|
|
|
```
|
|
|
- name: Manage ViNS at resource group level
|
|
|
decort_vins:
|
|
|
authenticator: jwt
|
|
|
jwt: "{{ my_jwt.jwt }}"
|
|
|
controller_url: "https://ds1.digitalenergy.online"
|
|
|
vins_name: "vins_created_by_decort_VINS_module"
|
|
|
state: present
|
|
|
rg_id: 198
|
|
|
ext_net_id: -1
|
|
|
ipcidr: "10.20.30.0/24"
|
|
|
mgmtaddr: "10.20.30.1"
|
|
|
custom_config: false
|
|
|
config_save: false
|
|
|
verify_ssl: false
|
|
|
register: my_vins
|
|
|
```
|
|
|
|
|
|
Здесь результат исполнения модуля decort_vins записывается в переменную my_vins, которую можно дальше использовать в Ansible playbooks. Ниже показано, как получить и использовать идентификатор ViNS для подключения к нему виртуального сервера.
|
|
|
```
|
|
|
- name: manage virtual server
|
|
|
decort_kvmvm:
|
|
|
<< для краткости фрагмент опущен >>
|
|
|
networks:
|
|
|
- type: VINS
|
|
|
id: "{{ my_vins.facts.id }}"
|
|
|
<< для краткости фрагмент опущен >>
|
|
|
```
|
|
|
|
|
|
В данном примере идёт создание виртуального сетевого сегмента, а потом его привязка к виртуальным сетевым сегментам с id 864 и 196.
|
|
|
```
|
|
|
- name: Manage ViNS at 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"
|
|
|
state: present
|
|
|
rg_id: 98
|
|
|
connect_to:
|
|
|
- type: VINS
|
|
|
id: 864
|
|
|
ipaddr: 192.168.5.66
|
|
|
netmask: 24
|
|
|
- type: VINS
|
|
|
id: 196
|
|
|
ipaddr: 192.168.9.133
|
|
|
netmask: 24
|
|
|
register: managed_vins
|
|
|
|
|
|
```
|
|
|
|
|
|
|