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.

894 lines
22 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_lb
## Обзор модуля decort_lb
Модуль **decort_lb** предназначен для выполнения следующих действий над балансировщиками нагрузки:
- создать
- получить информацию
- отключить/включить/запустить/перезапустить
- изменить конфигурации backend и frontend
- удалить (в корзину или безвозвратно)
- восстановить из корзины
## Параметры модуля decort_lb
Ниже приведен полный список параметров для модуля **decort_lb**:
<table>
<tr>
<th colspan="3">Параметр</th>
<th>Тип</th>
<th>Описание</th>
</tr>
<tr>
<td colspan="3">
account_id
</td>
<td>
(int)
</td>
<td>
Идентификатор аккаунта.
</td>
</tr>
<tr>
<td colspan="3">
account_name
</td>
<td>
(str)
</td>
<td>
Имя аккаунта.
<br> Может быть альтернативой параметру <code>account_id</code>.
</td>
</tr>
<tr>
<td colspan="3">
description
</td>
<td>
(str)
<br>Default: <code>Managed by Ansible module decort_lb</code>
</td>
<td>
Описание балансировщика.
</td>
</tr>
<tr>
<td colspan="3">
app_id
</td>
<td>
(str)
</td>
<td>
Идентификатор приложения, использующийся для подключения к контроллеру
облачной платформы DECORT в режиме <code>authenticator: oauth2</code>.
Данный параметр является обязательным для указанного режима. Если
параметр не задан в playbook, модуль будет использовать значение
переменной окружения <code>DECORT_APP_ID</code>.
</td>
</tr>
<tr>
<td colspan="3">
app_secret
</td>
<td>
(str)
</td>
<td>
Секретный ключ приложения, который используется для подключения к
контроллеру облачной платформы DECORT в режиме
<code>authenticator: oauth2</code>. Данный параметр является
обязательным для указанного режима. Так как он содержит секретную
информацию, то его не рекомендуется задавать непосредственно в
playbook. Если параметр не задан в playbook, то модуль будет
использовать значение переменной окружения
<code>DECORT_APP_SECRET</code>.
</td>
</tr>
<tr>
<td colspan="3">
authenticator
</td>
<td>
(str)
<br>Значения:
<br/><code>oauth2</code>
<br/><code>jwt</code>
</td>
<td>
Режим аутентификации при подключении к контроллеру облачной платформы
DECORT. Обязательный параметр.
</td>
</tr>
<tr>
<td colspan="3">
backends
</td>
<td>
(list)
</td>
<td>
Список словарей, описывающих конфигурации backend.
</td>
</tr>
<tr>
<td></td>
<td colspan="2">
algorithm
</td>
<td>
(str)
<br>Значения:
<br><code>leastconn</code>
<br><code>roundrobin</code>
<br><code>static-rr</code>
<br>Default: <code>roundrobin</code>
</td>
<td>
Используемый алгоритм.
</td>
</tr>
<tr>
<td></td>
<td colspan="2">
<a name="backend_default_settings">
default_settings
</a>
</td>
<td>
(dict)
</td>
<td>
оварь, описывающий параметры по умолчанию для backend-серверов.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
downinter
</td>
<td>
(int)
<br>Default: <code>1000</code>
</td>
<td>
Интервал в миллисекундах между двумя последовательными проверками
доступности сервера, который считается недоступным.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
fall
</td>
<td>
(int)
<br>Default: <code>2</code>
</td>
<td>
Количество последовательных неудачных проверок доступности, после
которых сервер, ранее считавшийся доступным, начинает считаться
недоступным и временно исключается из схемы балансировки.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
inter
</td>
<td>
(int)
<br>Default: <code>5000</code>
</td>
<td>
Интервал в миллисекундах между двумя последовательными проверками
доступности сервера, который считается доступным.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
maxconn
</td>
<td>
(int)
<br>Default: <code>250</code>
</td>
<td>
Лимит одновременных подключений к серверу. При достижении этого лимита
сервер временно исключается из схемы балансировки.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
maxqueue
</td>
<td>
(int)
<br>Default: <code>256</code>
</td>
<td>
Лимит соединений, ожидающих в очереди. Когда этот предел будет
достигнут, все последующие подключения будут перенаправлены
на другие серверы.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
rise
</td>
<td>
(int)
<br>Default: <code>2</code>
</td>
<td>
Количество проверок, которые должен пройти сервер, считавшийся
недоступным, чтобы начать считаться доступным и снова быть
включенным в схему балансировки.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
slowstart
</td>
<td>
(int)
<br>Default: <code>60000</code>
</td>
<td>
Интервал в миллисекундах с момента когда сервер начинает считаться
доступным, по истечении которого количество фактически разрешенных
подключений к этому серверу будет возвращено до 100% от
установленного лимита.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
weight
</td>
<td>
(int)
<br>Default: <code>100</code>
</td>
<td>
Вес сервера для использования в алгоритмах балансировки.
</td>
</tr>
<tr>
<td></td>
<td colspan="2">
name
</td>
<td>
(str)
</td>
<td>
Название backend. Обязательный параметр.
</td>
</tr>
<tr>
<td colspan="3">
controller_url
</td>
<td>
(str)
</td>
<td>
URL контроллера, соответствующего экземпляру облачной платформы
DECORT. Данный параметр является обязательным.
</td>
</tr>
<tr>
<td colspan="3">
ext_net_id
</td>
<td>
(int)
</td>
<td>
Идентификатор внешней сети.
<br>Может быть не задан, если задан <code>vins_id</code> -
в таком случае балансировщик будет подключён только к
внутренней сети.
</td>
</tr>
<tr>
<td colspan="3">
<a name="frontends">
frontends
</a>
</td>
<td>
(list)
</td>
<td>
Список словарей, описывающих конфигурации frontend.
</td>
</tr>
<tr>
<td></td>
<td colspan="2">
backend
</td>
<td>
(str)
</td>
<td>
Название используемого backend. Обязательный параметр.
</td>
</tr>
<tr>
<td></td>
<td colspan="2">
bindings
</td>
<td>
(list)
</td>
<td>
Список словарей, описывающих конфигурации binding.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
address
</td>
<td>
(str)
</td>
<td>
IP-адрес.
<br>Если не задан, то будет использоваться основной IP-адрес
балансировщика во внешней сети или, если подключена только
внутренняя сеть, основной IP-адрес балансировщика во внутренней сети.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
name
</td>
<td>
(str)
</td>
<td>
Название. Обязательный параметр.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
port
</td>
<td>
(int)
<br>Значения:
<br><code>1</code>-<code>65535</code>
</td>
<td>
Порт. Обязательный параметр.
</td>
</tr>
<tr>
<td colspan="3">
ha_lb
</td>
<td>
bool
<br>Default: <code>false</code>
</td>
<td>
Использовать схему высокой доступности для создаваемого балансировщика.
</td>
</tr>
<tr>
<td colspan="3">
jwt
</td>
<td>
(str)
</td>
<td>
JSON Web Token (JWT), который будет использоваться для подключения
к контроллеру облачной платформы DECORT в режиме
<code>authenticator: jwt</code>. Данный параметр является
обязательным для указанного режима. Так как он содержит
потенциально секретную информацию, а сам JWT, как правило,
имеет ограниченное время жизни, то его не рекомендуется задавать
непосредственно в playbook. Если этот параметр не определен в
playbook, то модуль будет использовать значение переменной
окружения <code>DECORT_JWT</code>.
</td>
</tr>
<tr>
<td colspan="3">
lb_id
</td>
<td>
(int)
</td>
<td>
Идентификатор балансировщика нагрузки.
</td>
</tr>
<tr>
<td colspan="3">
lb_name
</td>
<td>
(str)
</td>
<td>
Имя балансировщика.
</td>
</tr>
<tr>
<td colspan="3">
oauth2_url
</td>
<td>
(str)
</td>
<td>
URL авторизационного сервера, работающего по протоколу Oauth2,
который должен использоваться в режиме
<code>authenticator: oauth2</code>. Данный параметр является
обязательным для указанного режима. Если параметр не задан в
playbook, модуль будет использовать значение переменной
окружения <code>DECORT_OAUTH2_URL</code>.
</td>
</tr>
<tr>
<td colspan="3">
permanently
</td>
<td>
(bool)
<br>Default: <code>false</code>
</td>
<td>
Если выполняется удаление, то выполнить безвозвратное удаление
(минуя корзину).
</td>
</tr>
<tr>
<td colspan="3">
rg_id
</td>
<td>
(int)
</td>
<td>
Идентификатор ресурсной группы.
</td>
</tr>
<tr>
<td colspan="3">
rg_name
</td>
<td>
(str)
</td>
<td>
Имя ресурсной группы.
<br> В комбинации с заданным аккаунтов может быть альтернативой
параметру <code>rg_id</code>
</td>
</tr>
<tr>
<td colspan="3">
servers
</td>
<td>
(list)
</td>
<td>
Список словарей, описывающих конфигурации backend-серверов.
</td>
</tr>
<tr>
<td></td>
<td colspan="2">
address
</td>
<td>
(str)
</td>
<td>
IP-адрес. Обязательный параметр.
</td>
</tr>
<tr>
<td></td>
<td colspan="2">
backends
</td>
<td>
(list)
</td>
<td>
Список словарей, описывающих параметры backend-сервера для разных
конфигураций backend.
<br>Обязательный параметр.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
check
</td>
<td>
(str)
<br>Значения:
<br><code>enabled</code>
<br><code>disabled</code>
<br>Default: <code>enabled</code>
</td>
<td>
Проверка доступности сервера.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
name
</td>
<td>
(str)
</td>
<td>
Название конфигурации backend. Обязательный параметр.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
port
</td>
<td>
(int)
<br>Значения:
<br><code>1</code>-<code>65535</code>
</td>
<td>
Порт. Обязательный параметр.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
server_settings
</td>
<td>
(dict)
</td>
<td>
Словарь, описывающий параметры backend-сервера.
<br> Ключи данного словаря аналогичны ключам словаря
<a href=#backend_default_settings>
default_settings
</a>.
</td>
</tr>
<tr>
<td></td>
<td colspan="2">
name
</td>
<td>
(str)
</td>
<td>
Название. Обязательный параметр.
</td>
</tr>
<tr>
<td colspan="3">
state
</td>
<td>
(str)
<br>Значения:
<br><code>present</code>
<br><code>absent</code>
<br><code>enabled</code>
<br><code>disabled</code>
<br><code>restart</code>
<br>Default: <code>present</code>
</td>
<td>
Целевое состояние балансировщика нагрузки.
<br>Выполнение с <code>state=restart</code> позволяет выполнить
перезапуск балансировщика, соответственно, всегда возвращает
<code>changed: true</code>.
<br>Значения <code>present</code> и <code>enabled</code> равнозначны
и соответствуют включённому и запущенному балансировщику.
</td>
</tr>
<tr>
<td colspan="3">
verify_ssl
</td>
<td>
(bool)
<br>Default: <code>true</code>
</td>
<td>
Позволяет отключить проверку SSL сертификатов при выполнении API
вызовов в адрес контроллера облачной инфраструктуры, например,
при работе с изолированной облачной инфраструктурой, использующей
самоподписанные сертификаты. Применяйте данный параметр с
осторожностью, предпочтительно в защищенных средах.
</td>
</tr>
<tr>
<td colspan="3">
vins_id
</td>
<td>
(int)
</td>
<td>
Идентификатор внутренней сети.
<br>Может быть не задан, если задан <code>ext_net_id</code> -
в таком случае балансировщик будет подключён только к
внешней сети.
</td>
</tr>
<tr>
<td colspan="3">
vins_name
</td>
<td>
(str)
</td>
<td>
Имя внутренней сети.
<br> В комбинации с заданной РГ может быть альтернативой для
параметра <code>vins_id</code>.
</td>
</tr>
</table>
## Возвращаемые значения модуля decort_lb
Модуль **decort_lb** возвращает информацию о балансировщике в виде словаря `facts` со следующими ключами:
<table>
<tr>
<th colspan="4">
Ключ
</th>
<th>
Тип
<br>данных
</th>
<th>
Описание
</th>
</tr>
<tr>
<td colspan="4">
backends
</td>
<td>
list
</td>
<td>
Список словарей, описывающих конфигурации backend.
</td>
</tr>
<tr>
<td></td>
<td colspan="3">
algorithm
</td>
<td>
str
</td>
<td>
Используемый алгоритм.
</td>
</tr>
<tr>
<td></td>
<td colspan="3">
name
</td>
<td>
str
</td>
<td>
Название конфигурации backend.
</td>
</tr>
<tr>
<td></td>
<td colspan="3">
serverDefaultSettings
</td>
<td>
dict
</td>
<td>
оварь, описывающий параметры по умолчанию для backend-серверов.
<br> Ключи данного словаря аналогичны ключам словаря
<a href=#backend_default_settings>
default_settings
</a>.
</td>
</tr>
<tr>
<td></td>
<td colspan="3">
servers
</td>
<td>
list
</td>
<td>
Список словарей, описывающих конфигурации backend-серверов.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="2">
address
</td>
<td>
str
</td>
<td>
IP-адрес.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="2">
check
</td>
<td>
str
</td>
<td>
Проверка доступности сервера.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="2">
name
</td>
<td>
str
</td>
<td>
Название.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="2">
port
</td>
<td>
int
</td>
<td>
Порт.
</td>
</tr>
<tr>
<td></td>
<td></td>
<td colspan="2">
serverSettings
</td>
<td>
dict
</td>
<td>
оварь, описывающий параметры backend-сервера.
<br> Ключи данного словаря аналогичны ключам словаря
<a href=#backend_default_settings>
default_settings
</a>.
</td>
</tr>
<tr>
<td colspan="4">
frontends
</td>
<td>
list
</td>
<td>
Список словарей, описывающих конфигурации frontend.
<br> Ключи данного словаря аналогичны ключам словарей списка
<a href=#frontends>
frontends
</a>.
</td>
</tr>
<tr>
<td colspan="4">
gid
</td>
<td>
int
</td>
<td>
Идентификатор физического кластера (Grid ID).
</td>
</tr>
<tr>
<td colspan="4">
id
</td>
<td>
int
</td>
<td>
Идентификатор балансировщика.
</td>
</tr>
<tr>
<td colspan="4">
name
</td>
<td>
str
</td>
<td>
Имя балансировщика.
</td>
</tr>
<tr>
<td colspan="4">
rg_id
</td>
<td>
int
</td>
<td>
Идентификатор ресурсной группы.
</td>
</tr>
<tr>
<td colspan="4">
state
</td>
<td>
str
</td>
<td>
Статус балансировщика.
</td>
</tr>
</table>