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.

859 lines
19 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
- конфигурацию sysctl
- зону
- удалить (в корзину или безвозвратно)
- восстановить из корзины
## Параметры модуля decort_lb
Ниже приведен список параметров для модуля **decort_lb** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)):
<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)
</td>
<td>
Описание балансировщика.
</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">
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">
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">
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>absent</code>
<br><code>disabled</code>
<br><code>enabled</code>
<br><code>present</code>
<br><code>restart</code>
<br><code>started</code>
<br><code>stopped</code>
</td>
<td>
Целевое состояние балансировщика нагрузки.
<br><code>absent</code> - удалён в корзину или безвозвратно удалён,
в зависимости от значения параметра
<a href=#permanently>permanently</a>.
<br><code>disabled</code> - выключен. Если включён, то будет выключен.
<br><code>enabled</code> - включён. Если выключен, то будет включён.
Если удалён в корзину, то будет восстановлен из корзины и включён.
<br><code>present</code> - существует и не удалён. Если удалён в
корзину, то будет восстановлен из корзины.
<br><code>restart</code> - выполнен перезапуск.
<br><code>started</code> - запущен. Если остановлен, то будет запущен.
<br><code>stopped</code> - остановлен. Если запущен, то будет остановлен.
<br>Значение по умолчанию при создании: <code>present</code>
</td>
</tr>
<tr>
<td colspan="3">
sysctl
</td>
<td>
(dict)
</td>
<td>
Словарь, описывающий параметры конфигурации sysctl.
</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>
<tr>
<td colspan="3">
zone_id
</td>
<td>
(int)
</td>
<td>
Идентификатор зоны.
</td>
</tr>
</table>
## Возвращаемые значения модуля decort_lb
Модуль **decort_lb** возвращает информацию о балансировщике в виде словаря `facts` со следующими ключами:
<table>
<tr>
<th colspan="4">
Ключ
</th>
<th>
Тип
<br>данных
</th>
<th>
Описание
</th>
</tr>
<tr>
<td colspan="4">
account_id
</td>
<td>
int
</td>
<td>
Идентификатор аккаунта.
</td>
</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>
<tr>
<td colspan="4">
sysctl
</td>
<td>
dict
</td>
<td>
Параметры конфигурации sysctl.
</td>
</tr>
<tr>
<td colspan="4">
tech_status
</td>
<td>
str
</td>
<td>
Технический статус балансировщика.
</td>
</tr>
<tr>
<td colspan="4">
zone_id
</td>
<td>
int
</td>
<td>
Идентификатор зоны.
</td>
</tr>
</table>