Spec-Zone.ru › Ansible

Модуль community.general.haproxy — включение и отключение серверов бэкенда HAProxy и настройка их весов с помощью команд сокета

Примечание

Этот модуль входит в коллекцию community.general (версия 12.6.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.general.

Чтобы использовать её в плейбуке, укажите: community.general.haproxy.

  • Краткое описание
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры

Краткое описание

  • Включение, отключение, вывод из обслуживания и настройка весов серверов бэкенда HAProxy с помощью команд сокета.

Параметры

Параметр

Комментарии

agent

логическое значение

добавлено в community.general 1.0.0

Отключить/включить проверки агента (в зависимости от значения state).

Варианты:

  • false ← (по умолчанию)
  • true

backend

строка

Имя пула бэкенда HAProxy.

Если этот параметр не задан, его значение определяется автоматически.

drain

логическое значение

Ожидать, пока у сервера не останется активных подключений или пока не истечёт время ожидания, определяемое параметрами wait_interval и wait_retries.

Продолжить только после изменения статуса на MAINT.

Этот параметр переопределяет параметр shutdown_sessions.

Варианты:

  • false ← (по умолчанию)
  • true

fail_on_not_found

логическое значение

Завершать работу с ошибкой при попытке включить или отключить отсутствующий хост бэкенда.

Варианты:

  • false ← (по умолчанию)
  • true

health

логическое значение

добавлено в community.general 1.0.0

Отключить/включить проверки состояния (в зависимости от значения state).

Варианты:

  • false ← (по умолчанию)
  • true

host

строка / обязательный

Имя хоста бэкенда, который необходимо изменить.

shutdown_sessions

логическое значение

При отключении сервера немедленно завершать все сеансы, связанные с указанным сервером.

Это можно использовать для завершения длительных сеансов после перевода сервера в режим обслуживания. Переопределяется параметром drain.

Варианты:

  • false ← (по умолчанию)
  • true

socket

путь

Путь к файлу сокета HAProxy.

По умолчанию: "/var/run/haproxy.sock"

state

строка / обязательный

Требуемое состояние указанного хоста бэкенда.

Обратите внимание, что состояние drain поддерживается только в HAProxy версии 1.5 или более поздней. В версиях < 1.5 оно игнорируется.

Варианты:

  • "disabled"
  • "drain"
  • "enabled"

wait

логическое значение

Ожидать, пока сервер сообщит статус UP при state=enabled, статус MAINT при state=disabled или статус DRAIN при state=drain.

Варианты:

  • false ← (по умолчанию)
  • true

wait_interval

целое число

Количество секунд ожидания между повторными попытками.

По умолчанию: 5

wait_retries

целое число

Количество проверок статуса после изменения состояния.

По умолчанию: 25

weight

строка

Значение, передаваемое в аргументе.

Если значение заканчивается знаком %, новый вес задаётся относительно изначально настроенного веса.

Относительные веса могут находиться только в диапазоне от 0 до 100%, а абсолютные — в диапазоне от 0 до 256.

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: отсутствует

Может выполняться в режиме check_mode и возвращать прогноз изменения статуса, не изменяя целевой объект.

diff_mode

Поддержка: отсутствует

Возвращает сведения об изменениях (или об изменениях, которые могут потребоваться в check_mode) при работе в режиме diff.

Примечания

Примечание

  • Команды включения, отключения и вывода из обслуживания имеют ограничения: их можно выполнять только через сокеты, настроенные на уровень 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: true
    agent: true

- 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: true

# 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: true
    drain: true
    wait_interval: 60
    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: true

- 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: true

- 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: true

- 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: true
    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–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/general/haproxy_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API