|
|
|
|
# Модуль 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>• `local_port` (int) (обязательный) - внутренний порт; значения: от `1` до `65535`<br>• `proto` (str) (обязательный) - протокол; значения: `tcp` или `udp`<br>• `public_port_end` (int) (необязательный) - верхняя граница диапазона внешних портов; значения: от значения ключа `public_port_start` до `65535`;<br>• `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>• `id` (int) - идентификатор правила<br>• `localIp` (str) - IP-адрес ВМ<br>• `localPort` (int) - внутренний порт<br>• `protocol` (str) - протокол<br>• `publicPortEnd` (int) - верхняя граница диапазона внешних портов<br>• `publicPortStart` (int) - нижняя граница диапазона внешних портов<br>• `vmId` (int) - идентификатор ВМ<br>• `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 }}"
|
|
|
|
|
```
|