community.general.apache2_mod_proxy 模块 – 设置和/或获取 Apache httpd 2.4 mod_proxy 负载均衡池的成员属性

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general

要在 playbook 中使用它,请指定:community.general.apache2_mod_proxy

概要

  • 使用 HTTP POST 和 GET 请求设置和/或获取 Apache httpd 2.4 mod_proxy 负载均衡池的成员属性。必须启用并可以访问 httpd mod_proxy balancer-member 状态页面,因为此模块依赖于解析此页面。此模块支持 ansible check_mode,并需要 BeautifulSoup python 模块。

参数

参数

注释

balancer_url_suffix

字符串

访问负载均衡池状态页面所需的负载均衡池 URL 后缀(例如 balancer_vhost[:port]/balancer_url_suffix)。

默认值: "/balancer-manager/"

balancer_vhost

字符串 / 必填

Apache httpd 2.4 mod_proxy 负载均衡池的 (ipv4|ipv6|fqdn):port。

member_host

字符串

要获取或设置属性的负载均衡成员的 (ipv4|ipv6|fqdn)。端口号会自动检测,此处无需指定。如果未定义,apache2_mod_proxy 模块将返回一个包含所有当前负载均衡池成员属性的字典列表。

state

字符串

成员主机所需的状态。(absent|disabled),drained,hot_standby,ignore_errors 可以通过逗号分隔同时调用(例如 state=drained,ignore_errors)。

可接受的状态值:["present", "absent", "enabled", "disabled", "drained", "hot_standby", "ignore_errors"]

tls

布尔值

使用 https 访问负载均衡管理页面。

选项

  • false ← (默认)

  • true

validate_certs

布尔值

验证 ssl/tls 证书。

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息。

示例

- 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

返回值

常见的返回值已在 此处 记录,以下是此模块特有的字段

描述

member

字典

当使用 member_host 参数调用 apache2_mod_proxy 模块时返回的特定负载均衡成员信息字典。

返回:成功

示例: {"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&w=http://10.10.0.20:8080/ws&nonce=8925436c-79c6-4841-8936-e7d13b79239b", "path": "/ws", "port": 8080, "protocol": "http", "status": {"disabled": false, "drained": false, "hot_standby": false, "ignore_errors": false}}

members

列表 / 元素=字符串

成员(如上定义)字典列表,当 apache2_mod_proxy 在没有 member_host 和 state 参数的情况下调用时返回。

返回:成功

示例: [{"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&w=http://10.10.0.20:8080/ws&nonce=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&w=http://10.10.0.21:8080/ws&nonce=8925436c-79c6-4841-8936-e7d13b79239b", "path": "/ws", "port": 8080, "protocol": "http", "status": {"disabled": false, "drained": false, "hot_standby": false, "ignore_errors": false}}]

作者

  • Olivier Boukili (@oboukili)