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.

77 lines
10 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Модуль 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)<br>Значения:<br/>`oauth2`<br/>`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`).<br>Ключи словаря:<br>&bull; `local_port` (int) (обязательный) - внутренний порт; значения: от `1` до `65535`<br>&bull; `proto` (str) (обязательный) - протокол; значения: `tcp` или `udp`<br>&bull; `public_port_end` (int) (необязательный) - верхняя граница диапазона внешних портов; значения: от значения ключа `public_port_start` до `65535`;<br>&bull; `public_port_start` (int) (обязательный) - нижняя граница диапазона внешних портов; значения: от `1` до `65535` |
| state | (str)<br>Значения:<br/>`present`<br/>`absent`<br>Default: `present` | Целевое состояние правил.<br>Если `state=absent`, то, независимо от содержания параметра `rules`, будут удалены все правила для заданной ВМ (параметр `compute_id`) на виртуальном маршрутизаторе заданной внутренней сети (параметр `vins_id`). |
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
| vins_id | (int) | Идентификатор внутренней сети, на виртуальном маршрутизаторе которой настраиваются правила переадресации портов. Заданная ВМ (параметр `compute_id`) должна быть подключена к этой сети. Обязательный параметр. |
## Возвращаемые значения модуля decort_pfw
Модуль **decort_pfw** возвращает информацию о правилах переадресации портов и сопутствующую информацию в виде словаря `facts` со следующими ключами:
|Ключ | Тип данных | Описание|
| ------ | ------ | ------ |
| compute_id | int | Идентификатор ВМ. |
| public_ip | string | IP-адрес во внешней сети, настроенный на виртуальном маршрутизаторе внутренней сети. |
| rules | list | Список словарей, описывающих правила переадресации портов.<br>Ключи словаря:<br>&bull; `id` (int) - идентификатор правила<br>&bull; `localIp` (str) - IP-адрес ВМ<br>&bull; `localPort` (int) - внутренний порт<br>&bull; `protocol` (str) - протокол<br>&bull; `publicPortEnd` (int) - верхняя граница диапазона внешних портов<br>&bull; `publicPortStart` (int) - нижняя граница диапазона внешних портов<br>&bull; `vmId` (int) - идентификатор ВМ<br>&bull; `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 }}"
```