# Модуль decort_vins ## Обзор модуля decort_vins Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия: - создавать - на уровне ресурсной группы (если РГ задана) - на уровне аккаунта (если РГ не задана) - удалять (безвозвратно) - восстанавливать из корзины - запрашивать информацию - включать/отключать - соединять (необходимы права администратора) - изменять: - включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора) - включать/отключать режим **Custom Config** для виртуального маршрутизатора (необходимы права администратора) - сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора) ## Параметры модуля decort_vins Ниже в алфавитном порядке приведен полный список параметров для модуля decort_vins. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: `ansible-doc -t module 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)| Текстовое описание внутренней сети. Данный аргумент является опциональным и учитывается только при создании внутренней сети, а при всех прочих операциях игнорируется.| | app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.| | app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.| | authenticator | Значения:
`oauth2`
`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. | | controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данный внутренняя сеть. Данный параметр является обязательным. | ext_net_id | (int) | Идентификатор внешней сети, к которой должна быть подключена внутренняя сеть. Если задать значение `0`, то платформой будет выбрана внешняя сеть по умолчанию. | | ext_ip_addr | (string) | IP-адрес внешней сети, заданной через параметр `ext_net_id`. Если не задан, то IP-адрес для внешней сети будет выбран платформой автоматически. | ipcidr | (string) | Адрес сети для создаваемой внутренней сети. Если этот параметр не задан, то платформа назначит адрес автоматически. Обратите внимание, что внутренние сети, принадлежащие одному и тому же аккаунту, не могут иметь пересекающихся сетей.| | jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.| | oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу _Oauth2_, который должен использоваться в режиме `authenticator: oauth2`.
Данный параметр является обязательным для указанного режима.
Если параметр не задан в _playbook_, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. | |rg_id | (int) | Идентификатор ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_id` и `rg_name`, то `rg_name` игнорируется.| | rg_name | (string) | Имя ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_name` и `rg_id`, то `rg_name` игнорируется.| | state | (string)
Значения:
`present`
`absent`
`enabled`
`disabled`
Default: `present` | Целевое состояние внутренней сети. | | verify_ssl | (bool)
Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | | 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) | Список словарей, содержащих информацию о внутренних сетях, к которым необходимо подключить данную. См. примеры. ## Возвращаемые значения модуля decort_vins Модуль decort_vins возвращает информацию о внутренней сети в виде словаря facts со следующими ключами: | Ключ | Тип данных | Описание | | --- | --- | --- | | account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит внутренняя сеть. | | custom_net_addr | (list) | Список IP-адресов пользовательских интерфейсов виртуального маршрутизатора | ext_ip_addr | (string) | IP-адрес интерфейса, которым виртуальный маршрутизатор подключён к внешней сети. | | ext_net_id | (int) | Идентификатор внешней сети, к которой подключена внутренняя сеть. `-1` означает, что внутренняя сеть не подключёна к внешней сети. | | gid | (int) | Идентификатор физического кластера (Grid ID), на базе которого развёрнуты ресурсы данной внутренней сети. | | id | (int) | Уникальный целочисленный идентификатор внутренней сети. | | name | (string) | Имя внутренней сети. | | int_net_addr | (string) | Адрес внутренней сети. | | rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы, которой принадлежит данная внутренняя сеть. Если данная внутренняя сеть создана на уровне аккаунта, то `rg_id=0`. | | ssh_ipaddr | (list) | Список IP-адресов виртуального маршрутизатора во внутренней сети, на которых включён SSH-доступ к нему. | ssh_password | (str) | Пароль для SSH-доступа к виртуальному маршрутизатору. | ssh_port | (int) | Номер порта для SSH-подключения к виртуальному маршрутизатору. | state | (string) | Состояние внутренней сети. | ## Пример использования модуля decort_vins В данном примере создаётся внутренняя сеть с именем "MyVins01" (vins_name: "MyVins01"). Внутренняя сеть создаётся на уровне ресурсной группы "MyRg01" (rg_name: "MyRg01"), принадлежащей аккаунту "MyMainAccount" (account_name: "MyMainAccount"). Внутренняя сеть будет иметь подключение во внешнюю сеть по умолчанию (ext_net_id: 0). ``` - 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 ``` Здесь результат исполнения модуля decort_vins записывается в переменную my_vins, которую можно дальше использовать в Ansible playbooks. Ниже показано, как получить и использовать идентификатор внутренней сети для подключения к нему виртуального сервера. ``` - name: Manage virtual machine decort_kvmvm: << для краткости фрагмент опущен >> networks: - type: VINS id: "{{ my_vins.facts.id }}" << для краткости фрагмент опущен >> ``` В данном примере идёт создание внутренней сети, а потом её привязка к внутренним сетям с 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 ```