W3cubDocs

/Ansible

apache2_mod_proxy - Set and/or get members’ attributes of an Apache httpd 2.4 mod_proxy balancer pool

New in version 2.2.

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.

Options

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
  • present
  • absent
  • enabled
  • disabled
  • drained
  • hot_standby
  • ignore_errors
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
  • true
  • false
Use https to access balancer management page.
validate_certs
no True
  • true
  • false
Validate ssl/tls certificates.

Examples

# 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

Return Values

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}]

This is an Extras Module

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