community.general.haproxy 模块 – 使用套接字命令启用、禁用和设置 HAProxy 后端服务器的权重
注意
此模块是 community.general 集合(版本 10.1.0)的一部分。
如果您正在使用 ansible
包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.general
。
要在剧本中使用它,请指定:community.general.haproxy
。
概要
使用套接字命令启用、禁用、清空和设置 HAProxy 后端服务器的权重。
参数
参数 |
注释 |
---|---|
HAProxy 后端池的名称。 如果未设置此参数,它将自动检测。 |
|
等待服务器没有活动连接,或者直到达到由 wait_interval 和 wait_retries 确定的超时时间。 仅在状态更改为 这将覆盖 shutdown_sessions 选项。 选项
|
|
当尝试启用/禁用不存在的后端主机时,会失败。 选项
|
|
要更改的后端主机的名称。 |
|
禁用服务器时,立即终止附加到指定服务器的所有会话。 这可用于在服务器置于维护模式后终止长时间运行的会话。会被 drain 选项覆盖。 选项
|
|
HAProxy 套接字文件的路径。 默认值: |
|
提供的后端主机的所需状态。 请注意, 选项
|
|
当 选项
|
|
重试之间等待的秒数。 默认值: |
|
更改状态后检查状态的次数。 默认值: |
|
在参数中传递的值。 如果该值以 相对权重仅允许介于 0 和 100% 之间,绝对权重允许介于 0 和 256 之间。 |
属性
属性 |
支持 |
描述 |
---|---|---|
支持: 无 |
可以在 |
|
支持: 无 |
当处于 diff 模式时,将返回已更改的内容(或者在 |
注意
注意
启用、禁用和清空命令受到限制,只能在为“admin”级别配置的套接字上发出。例如,您可以在 haproxy.cfg 的 general 部分添加行“stats socket /var/run/haproxy.sock level admin”。请参阅 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