community.general.haproxy – Включение, выключение и установка весов для серверов бэкенда HAProxy с помощью команд сокета
Примечание
Этот плагин входит в коллекцию community.general (версия 2.0.1).
Для его установки используйте: ansible-galaxy collection install community.general.
Для использования в плейбуке укажите: community.general.haproxy.
Описание
- Включение, выключение, остановка и установка весов для серверов бэкенда HAProxy с помощью команд сокета.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| agent boolean добавлен в 1.0.0 community.general |
| Отключить/включить проверки агента (в зависимости от значения state). |
| backend строка | Имя пула бэкенда HAProxy. Если этот параметр не задан, он будет автоматически определен. | |
| drain boolean |
| Ожидать, пока у сервера не будет активных соединений или пока не истечет время ожидания, определенное wait_interval и wait_retries. Продолжить только после того, как статус изменится на 'MAINT'. Это переопределяет параметр shutdown_sessions. |
| fail_on_not_found boolean |
| Прерывать выполнение, если попытка включения/выключения хоста бэкенда, который не существует. |
| health boolean добавлен в 1.0.0 community.general |
| Отключить/включить проверки работоспособности (в зависимости от значения state). |
| host строка / обязательно | Имя хоста бэкенда, состояние которого нужно изменить. | |
| shutdown_sessions boolean |
| При выключении сервера немедленно завершить все сеансы, подключенные к указанному серверу. Это может быть использовано для завершения длительных сеансов после перевода сервера в режим технического обслуживания. Переопределяется параметром drain. |
| socket путь | Значение по умолчанию: "/var/run/haproxy.sock" | Путь к файлу сокета HAProxy. |
| state строка / обязательно |
| Желаемое состояние предоставленного хоста бэкенда. Обратите внимание, что состояние drain было добавлено в версии 2.4.Поддерживается только версией HAProxy 1.5 или более поздней. При использовании на версиях < 1.5, будет проигнорировано. |
| wait boolean |
| Ожидать, пока сервер не сообщит о статусе 'UP', когда state=enabled, статусе 'MAINT', когда state=disabled, или статусе 'DRAIN', когда state=drain.
|
| wait_interval целое число | Значение по умолчанию: 5 | Количество секунд ожидания между повторными попытками. |
| wait_retries целое число | Значение по умолчанию: 25 | Количество попыток проверки статуса после изменения состояния. |
| weight строка | Значение, передаваемое в качестве аргумента. Если значение заканчивается знаком `%`, новое значение веса будет относительным к первоначально настроенному весу. Относительные веса допускаются только между 0 и 100%, а абсолютные веса – между 0 и 256. |
Примечания
Примечание
- Команды включения, выключения и остановки ограничены и могут быть выполнены только на сокетах, настроенных на уровень ‘admin’. Например, можно добавить строку ‘stats socket /var/run/haproxy.sock level admin’ в общий раздел haproxy.cfg. Смотрите http://haproxy.1wt.eu/download/1.5/doc/configuration.txt.
- Зависит от наличия netcat (nc). Вам необходимо установить соответствующий пакет для вашей операционной системы, прежде чем этот модуль сможет быть использован.
Примеры
- name: Disable server in 'www' backend pool
community.general.haproxy:
state: disabled
host: '{{ inventory_hostname }}'
backend: www
- name: Disable server in 'www' backend pool, also stop health/agent checks
community.general.haproxy:
state: disabled
host: '{{ inventory_hostname }}'
health: yes
agent: yes
- name: Disable server without backend pool name (apply to all available backend pool)
community.general.haproxy:
state: disabled
host: '{{ inventory_hostname }}'
- name: Disable server, provide socket file
community.general.haproxy:
state: disabled
host: '{{ inventory_hostname }}'
socket: /var/run/haproxy.sock
backend: www
- name: Disable server, provide socket file, wait until status reports in maintenance
community.general.haproxy:
state: disabled
host: '{{ inventory_hostname }}'
socket: /var/run/haproxy.sock
backend: www
wait: yes
# Place server in drain mode, providing a socket file. Then check the server's
# status every minute to see if it changes to maintenance mode, continuing if it
# does in an hour and failing otherwise.
- community.general.haproxy:
state: disabled
host: '{{ inventory_hostname }}'
socket: /var/run/haproxy.sock
backend: www
wait: yes
drain: yes
wait_interval: 1
wait_retries: 60
- name: Disable backend server in 'www' backend pool and drop open sessions to it
community.general.haproxy:
state: disabled
host: '{{ inventory_hostname }}'
backend: www
socket: /var/run/haproxy.sock
shutdown_sessions: yes
- name: Disable server without backend pool name (apply to all available backend pool) but fail when the backend host is not found
community.general.haproxy:
state: disabled
host: '{{ inventory_hostname }}'
fail_on_not_found: yes
- name: Enable server in 'www' backend pool
community.general.haproxy:
state: enabled
host: '{{ inventory_hostname }}'
backend: www
- name: Enable server in 'www' backend pool wait until healthy
community.general.haproxy:
state: enabled
host: '{{ inventory_hostname }}'
backend: www
wait: yes
- name: Enable server in 'www' backend pool wait until healthy. Retry 10 times with intervals of 5 seconds to retrieve the health
community.general.haproxy:
state: enabled
host: '{{ inventory_hostname }}'
backend: www
wait: yes
wait_retries: 10
wait_interval: 5
- name: Enable server in 'www' backend pool with change server(s) weight
community.general.haproxy:
state: enabled
host: '{{ inventory_hostname }}'
socket: /var/run/haproxy.sock
weight: 10
backend: www
- name: Set the server in 'www' backend pool to drain mode
community.general.haproxy:
state: drain
host: '{{ inventory_hostname }}'
socket: /var/run/haproxy.sock
backend: www
Авторы
- Ravi Bhure (@ravibhure)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/general/haproxy_module.html