New in version 2.2.
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.
parameter | required | default | choices | comments |
---|---|---|---|---|
balancer_url_suffix | no | /balancer-manager/ | Suffix of the balancer pool url required to access the balancer pool status page (e.g. balancer_vhost[:port]/balancer_url_suffix). |
|
balancer_vhost | yes | None | (ipv4|ipv6|fqdn):port of the Apache httpd 2.4 mod_proxy balancer pool. |
|
member_host | no | None | (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. |
|
state | no | None |
| 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). |
tls | no |
| Use https to access balancer management page. |
|
validate_certs | no | True |
| Validate ssl/tls certificates. |
# Get all current balancer pool members' attributes: - apache2_mod_proxy: balancer_vhost=10.0.0.2 # Get a specific member's attributes: - apache2_mod_proxy: balancer_vhost=myws.mydomain.org balancer_suffix="/lb/" member_host=node1.myws.mydomain.org # Enable all balancer pool members: - apache2_mod_proxy: balancer_vhost="{{ myloadbalancer_host }}" register: result - 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: - apache2_mod_proxy: balancer_vhost="{{ vhost_host }}" member_host="{{ member.host }}" state=drained delegate_to=myloadbalancernode - wait_for: host="{{ member.host }}" port={{ member.port }} state=drained delegate_to=myloadbalancernode - apache2_mod_proxy: balancer_vhost="{{ vhost_host }}" member_host="{{ member.host }}" state=absent delegate_to=myloadbalancernode
Common return values are documented here Common Return Values, the following are the fields unique to this module:
name | description | returned | type | sample |
---|---|---|---|---|
member | specific balancer member information dictionary, returned when apache2_mod_proxy module is invoked with member_host parameter. | success | dict | {'status': {'disabled': False, 'hot_standby': False, 'drained': False, 'ignore_errors': False}, 'protocol': 'http', 'management_url': 'http://10.10.0.2/lb/?b=mywsbalancer&w=http://10.10.0.20:8080/ws&nonce=8925436c-79c6-4841-8936-e7d13b79239b', 'balancer_url': 'http://10.10.0.2/balancer-manager/', 'host': '10.10.0.20', 'attributes': {'Load': '0', 'Status': 'Init Ok ', 'Busy': '0', 'From': '136K', 'Elected': '42', 'Route': None, 'To': ' 47K', 'Set': '0', 'Factor': '1', 'Worker URL': None, 'RouteRedir': None}, 'path': '/ws', 'port': 8080} |
members | list of member (defined above) dictionaries, returned when apache2_mod_proxy is invoked with no member_host and state args. | success | list | [{'status': {'disabled': False, 'hot_standby': False, 'drained': False, 'ignore_errors': False}, 'protocol': 'http', 'management_url': 'http://10.10.0.2/lb/?b=mywsbalancer&w=http://10.10.0.20:8080/ws&nonce=8925436c-79c6-4841-8936-e7d13b79239b', 'balancer_url': 'http://10.10.0.2/balancer-manager/', 'host': '10.10.0.20', 'attributes': {'Load': '0', 'Status': 'Init Ok ', 'Busy': '0', 'From': '136K', 'Elected': '42', 'Route': None, 'To': ' 47K', 'Set': '0', 'Factor': '1', 'Worker URL': None, 'RouteRedir': None}, 'path': '/ws', 'port': 8080}, {'status': {'disabled': False, 'hot_standby': False, 'drained': False, 'ignore_errors': False}, 'protocol': 'http', 'management_url': 'http://10.10.0.2/lb/?b=mywsbalancer&w=http://10.10.0.21:8080/ws&nonce=8925436c-79c6-4841-8936-e7d13b79239b', 'balancer_url': 'http://10.10.0.2/balancer-manager/', 'host': '10.10.0.21', 'attributes': {'Load': '0', 'Status': 'Init Ok ', 'Busy': '0', 'From': '136K', 'Elected': '42', 'Route': None, 'To': ' 47K', 'Set': '0', 'Factor': '1', 'Worker URL': None, 'RouteRedir': None}, 'path': '/ws', 'port': 8080}] |
For more information on what this means please read Extras Modules
For help in developing on modules, should you be so inclined, please read Community Information & Contributing, developing_test_pr and Developing Modules.
© 2012–2016 Michael DeHaan
© 2016 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/apache2_mod_proxy_module.html