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.
decort-ansible/wiki/6.0.0/модуль-decort_vins.md

16 KiB

Модуль 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 игнорируется.
annotation (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