New in version 1.9.
parameter | required | default | choices | comments |
---|---|---|---|---|
backend |
no | auto-detected |
Name of the HAProxy backend pool.
|
|
drain (added in 2.4) |
no |
Wait until the server has no active connections or until the timeout determined by wait_interval and wait_retries is reached. Continue only after the status changes to 'MAINT'. This overrides the shutdown_sessions option.
|
||
fail_on_not_found (added in 2.2) |
no |
Fail whenever trying to enable/disable a backend host that does not exist
|
||
host |
yes |
Name of the backend host to change.
|
||
shutdown_sessions |
no |
When disabling a server, immediately terminate all the sessions attached to the specified server. This can be used to terminate long-running sessions after a server is put into maintenance mode. Overridden by the drain option.
|
||
socket |
no | /var/run/haproxy.sock |
Path to the HAProxy socket file.
|
|
state |
yes |
|
Desired state of the provided backend host.
Note that
drain state was added in version 2.4. It is supported only by HAProxy version 1.5 or later, if used on versions < 1.5, it will be ignored. |
|
wait (added in 2.0) |
no |
Wait until the server reports a status of 'UP' when `state=enabled`, status of 'MAINT' when `state=disabled` or status of 'DRAIN' when `state=drain`
|
||
wait_interval (added in 2.0) |
no | 5 |
Number of seconds to wait between retries.
|
|
wait_retries (added in 2.0) |
no | 25 |
Number of times to check for status after changing the state.
|
|
weight |
no |
The value passed in argument. If the value ends with the `%` sign, then the new weight will be relative to the initially configured weight. Relative weights are only permitted between 0 and 100% and absolute weights are permitted between 0 and 256.
|
# disable server in 'www' backend pool - haproxy: state: disabled host: '{{ inventory_hostname }}' backend: www # disable server without backend pool name (apply to all available backend pool) - haproxy: state: disabled host: '{{ inventory_hostname }}' # disable server, provide socket file - haproxy: state: disabled host: '{{ inventory_hostname }}' socket: /var/run/haproxy.sock backend: www # disable server, provide socket file, wait until status reports in maintenance - 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. - haproxy: state: disabled host: '{{ inventory_hostname }}' socket: /var/run/haproxy.sock backend: www wait: yes drain: yes wait_interval: 1 wait_retries: 60 # disable backend server in 'www' backend pool and drop open sessions to it - haproxy: state: disabled host: '{{ inventory_hostname }}' backend: www socket: /var/run/haproxy.sock shutdown_sessions: true # disable server without backend pool name (apply to all available backend pool) but fail when the backend host is not found - haproxy: state: disabled host: '{{ inventory_hostname }}' fail_on_not_found: yes # enable server in 'www' backend pool - haproxy: state: enabled host: '{{ inventory_hostname }}' backend: www # enable server in 'www' backend pool wait until healthy - haproxy: state: enabled host: '{{ inventory_hostname }}' backend: www wait: yes # enable server in 'www' backend pool wait until healthy. Retry 10 times with intervals of 5 seconds to retrieve the health - haproxy: state: enabled host: '{{ inventory_hostname }}' backend: www wait: yes wait_retries: 10 wait_interval: 5 # enable server in 'www' backend pool with change server(s) weight - haproxy: state: enabled host: '{{ inventory_hostname }}' socket: /var/run/haproxy.sock weight: 10 backend: www # set the server in 'www' backend pool to drain mode - haproxy: state: drain host: '{{ inventory_hostname }}' socket: /var/run/haproxy.sock backend: www
Note
This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.
For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Testing Ansible and Developing Modules.