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/5.4.0/модуль-decort_pfw.md

10 KiB

Модуль decort_pfw

Обзор модуля decort_pfw

Модуль decort_pfw предназначен для настройки правил переадресации портов (port forwarding, destination NAT) на виртуальном маршрутизаторе заданной внутренней сети для заданной виртуальной машины.
Модуль поддерживает выполнение следующих действий над правилами:

  • добавить
  • получить информацию
  • удалить

Параметры модуля decort_pfw

Ниже в алфавитном порядке приведен полный список параметров для модуля decort_pfw. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: ansible-doc -t module decort_pfw

Параметр Тип, допустимые значения Описание
app_id (string) Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения DECORT_APP_ID.
app_secret (string) Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения DECORT_APP_SECRET.
authenticator (str)
Значения:
oauth2
jwt
Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр.
compute_id (int) Идентификатор виртуальной машины. IP-адрес, который данная ВМ имеет во внутренней сети, заданной параметром vins_id, будет использоваться как внутренний IP-адрес в правилах. Обязательный параметр.
controller_url (string) URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным.
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.
rules (list) Список словарей, описывающих правила переадресации портов для заданной ВМ (параметр compute_id) на виртуальном маршрутизаторе заданной внутренней сети (параметр vins_id).
Ключи словаря:
local_port (int) (обязательный) - внутренний порт; значения: от 1 до 65535
proto (str) (обязательный) - протокол; значения: tcp или udp
public_port_end (int) (необязательный) - верхняя граница диапазона внешних портов; значения: от значения ключа public_port_start до 65535;
public_port_start (int) (обязательный) - нижняя граница диапазона внешних портов; значения: от 1 до 65535
state (str)
Значения:
present
absent
Default: present
Целевое состояние правил.
Если state=absent, то, независимо от содержания параметра rules, будут удалены все правила для заданной ВМ (параметр compute_id) на виртуальном маршрутизаторе заданной внутренней сети (параметр vins_id).
verify_ssl (bool)
Default: true
Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах.
vins_id (int) Идентификатор внутренней сети, на виртуальном маршрутизаторе которой настраиваются правила переадресации портов. Заданная ВМ (параметр compute_id) должна быть подключена к этой сети. Обязательный параметр.

Возвращаемые значения модуля decort_pfw

Модуль decort_pfw возвращает информацию о правилах переадресации портов и сопутствующую информацию в виде словаря facts со следующими ключами:

Ключ Тип данных Описание
compute_id int Идентификатор ВМ.
public_ip string IP-адрес во внешней сети, настроенный на виртуальном маршрутизаторе внутренней сети.
rules list Список словарей, описывающих правила переадресации портов.
Ключи словаря:
id (int) - идентификатор правила
localIp (str) - IP-адрес ВМ
localPort (int) - внутренний порт
protocol (str) - протокол
publicPortEnd (int) - верхняя граница диапазона внешних портов
publicPortStart (int) - нижняя граница диапазона внешних портов
vmId (int) - идентификатор ВМ
vmName (str) - имя ВМ
state string Статус правил. Значения: PRESENT или ABSENT.
vins_id int Идентификатор внутренней сети.

Пример использования модуля decort_pfw

В данном примере для существующей ВМ (параметр compute_id), подключённой к внутренней сети (параметр vins_id), настраиваются два правила переадресации портов:

  • Правило для одного порта: внешний порт 30022 на внутренний порт 22 по протоколу tcp.
  • Правило для диапазона портов: внешние порты с 30080 по 30085 на внутренние порты с 30080 по протоколу udp.
- name: Add port forwarding rules
  decort_pfw:
    app_id: "{{ my_app_id }}"
    app_secret: "{{ my_app_secret }}"
    authenticator: oauth2
    compute_id: "{{ my_vm.facts.id }}"
    controller_url: "https://cloud.digitalenergy.online"
    oauth2_url: "https://sso.digitalenergy.online"
    rules:
      - local_port: 22
        proto: tcp
        public_port_start: 30022
      - local_port: 30080
        proto: udp
        public_port_end: 30085
        public_port_start: 30080
    vins_id: "{{ my_vins.facts.id }}"
  register: my_pfw_rules

В данном примере результат выполнения модуля decort_pfw записывается в переменную my_pfw_rules. Для доступа к списку правил используйте следующую конструкцию:

"{{ my_pfw_rules.facts.rules }}"