community.general.apache2_mod_proxy – Set and/or get members’ attributes of an Apache httpd 2.4 mod_proxy balancer pool
Note
This plugin is part of the community.general collection (version 3.8.3).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.general
.
To use it in a playbook, specify: community.general.apache2_mod_proxy
.
Synopsis
Set and/or get members’ attributes of an Apache httpd 2.4 mod_proxy balancer pool, using HTTP POST and GET requests. The httpd mod_proxy balancer-member status page has to be enabled and accessible, as this module relies on parsing this page. This module supports ansible check_mode, and requires BeautifulSoup python module.
Parameters
Parameter |
Comments |
---|---|
Suffix of the balancer pool url required to access the balancer pool status page (e.g. balancer_vhost[:port]/balancer_url_suffix). Default: “/balancer-manager/” |
|
(ipv4|ipv6|fqdn):port of the Apache httpd 2.4 mod_proxy balancer pool. |
|
(ipv4|ipv6|fqdn) of the balancer member to get or to set attributes to. Port number is autodetected and should not be specified here. If undefined, apache2_mod_proxy module will return a members list of dictionaries of all the current balancer pool members’ attributes. |
|
Desired state of the member host. (absent|disabled),drained,hot_standby,ignore_errors can be simultaneously invoked by separating them with a comma (e.g. state=drained,ignore_errors). Accepted state values: [“present”, “absent”, “enabled”, “disabled”, “drained”, “hot_standby”, “ignore_errors”] |
|
Use https to access balancer management page. Choices:
|
|
Validate ssl/tls certificates. Choices:
|
Examples
- name: Get all current balancer pool members attributes
community.general.apache2_mod_proxy:
balancer_vhost: 10.0.0.2
- name: Get a specific member attributes
community.general.apache2_mod_proxy:
balancer_vhost: myws.mydomain.org
balancer_suffix: /lb/
member_host: node1.myws.mydomain.org
# Enable all balancer pool members:
- name: Get attributes
community.general.apache2_mod_proxy:
balancer_vhost: '{{ myloadbalancer_host }}'
register: result
- name: Enable all balancer pool members
community.general.apache2_mod_proxy:
balancer_vhost: '{{ myloadbalancer_host }}'
member_host: '{{ item.host }}'
state: present
with_items: '{{ result.members }}'
# Gracefully disable a member from a loadbalancer node:
- name: Step 1
community.general.apache2_mod_proxy:
balancer_vhost: '{{ vhost_host }}'
member_host: '{{ member.host }}'
state: drained
delegate_to: myloadbalancernode
- name: Step 2
ansible.builtin.wait_for:
host: '{{ member.host }}'
port: '{{ member.port }}'
state: drained
delegate_to: myloadbalancernode
- name: Step 3
community.general.apache2_mod_proxy:
balancer_vhost: '{{ vhost_host }}'
member_host: '{{ member.host }}'
state: absent
delegate_to: myloadbalancernode
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
specific balancer member information dictionary, returned when apache2_mod_proxy module is invoked with member_host parameter. Returned: success Sample: {“attributes”: {“Busy”: “0”, “Elected”: “42”, “Factor”: “1”, “From”: “136K”, “Load”: “0”, “Route”: null, “RouteRedir”: null, “Set”: “0”, “Status”: “Init Ok “, “To”: ” 47K”, “Worker URL”: null}, “balancer_url”: “http://10.10.0.2/balancer-manager/”, “host”: “10.10.0.20”, “management_url”: “http://10.10.0.2/lb/?b=mywsbalancer\u0026w=http://10.10.0.20:8080/ws\u0026nonce=8925436c-79c6-4841-8936-e7d13b79239b”, “path”: “/ws”, “port”: 8080, “protocol”: “http”, “status”: {“disabled”: false, “drained”: false, “hot_standby”: false, “ignore_errors”: false}} |
|
list of member (defined above) dictionaries, returned when apache2_mod_proxy is invoked with no member_host and state args. Returned: success Sample: [{“attributes”: {“Busy”: “0”, “Elected”: “42”, “Factor”: “1”, “From”: “136K”, “Load”: “0”, “Route”: null, “RouteRedir”: null, “Set”: “0”, “Status”: “Init Ok “, “To”: ” 47K”, “Worker URL”: null}, “balancer_url”: “http://10.10.0.2/balancer-manager/”, “host”: “10.10.0.20”, “management_url”: “http://10.10.0.2/lb/?b=mywsbalancer\u0026w=http://10.10.0.20:8080/ws\u0026nonce=8925436c-79c6-4841-8936-e7d13b79239b”, “path”: “/ws”, “port”: 8080, “protocol”: “http”, “status”: {“disabled”: false, “drained”: false, “hot_standby”: false, “ignore_errors”: false}}, {“attributes”: {“Busy”: “0”, “Elected”: “42”, “Factor”: “1”, “From”: “136K”, “Load”: “0”, “Route”: null, “RouteRedir”: null, “Set”: “0”, “Status”: “Init Ok “, “To”: ” 47K”, “Worker URL”: null}, “balancer_url”: “http://10.10.0.2/balancer-manager/”, “host”: “10.10.0.21”, “management_url”: “http://10.10.0.2/lb/?b=mywsbalancer\u0026w=http://10.10.0.21:8080/ws\u0026nonce=8925436c-79c6-4841-8936-e7d13b79239b”, “path”: “/ws”, “port”: 8080, “protocol”: “http”, “status”: {“disabled”: false, “drained”: false, “hot_standby”: false, “ignore_errors”: false}}] |
Authors
Olivier Boukili (@oboukili)