f5networks.f5_modules.bigip_pool 模块 – 管理 F5 BIG-IP LTM 池

注意

此模块是 f5networks.f5_modules 集合 (版本 1.32.1) 的一部分。

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

要安装它,请使用:ansible-galaxy collection install f5networks.f5_modules

要在剧本中使用它,请指定:f5networks.f5_modules.bigip_pool

f5networks.f5_modules 1.0.0 中的新增功能

概要

  • 通过 iControl REST API 管理 F5 BIG-IP LTM 池。

参数

参数

注释

aggregate

别名:pools

列表 / 元素=字典

要创建、修改或删除的池定义列表。

使用 aggregates 时,如果其中一个聚合定义无效,则聚合运行将失败,并指明其最后遇到的错误。

模块将不会回滚其在遇到错误之前所做的任何更改。

模块也不会指示在失败之前进行了哪些更改。因此,我们强烈建议您在 check 模式下运行模块,以确保在执行此模块之前进行基本的验证。

description

字符串

指定标识池的描述性文本。

lb_method

字符串

负载均衡方法。创建新的池时,如果未指定此值,则使用默认值 round-robin

选项

  • "dynamic-ratio-member"

  • "dynamic-ratio-node"

  • "fastest-app-response"

  • "fastest-node"

  • "least-connections-member"

  • "least-connections-node"

  • "least-sessions"

  • "observed-member"

  • "observed-node"

  • "predictive-member"

  • "predictive-node"

  • "ratio-least-connections-member"

  • "ratio-least-connections-node"

  • "ratio-member"

  • "ratio-node"

  • "ratio-session"

  • "round-robin"

  • "weighted-least-connections-member"

  • "weighted-least-connections-node"

metadata

任意

您可以附加到池的任意键/值对。这在您可能希望注释由 Ansible 管理的池的情况下很有用。

键名存储为字符串;这包括作为数字的名称。

所有键的值都存储为字符串;这包括作为数字的值。

数据将被持久化,而不是临时数据。

min_up_members

整数

指定必须启动的池成员的最小数量,

否则,系统将采取 min-up-members-action 选项中指定的动作。

在具有冗余系统的网关池中使用此选项,其中单元编号应用于池。

这表示池仅在指定的单元上配置。

创建新的池时,如果未指定此参数,则默认为 0

min_up_members_action

字符串

如果 min_up_members_checkingenabled 并且活动池成员的数量低于 min_up_members 选项中指定的数量,则指定要采取的操作。

创建新的池时,如果未指定此参数,则默认为 failover

选项

  • "failover"

  • "reboot"

  • "restart-all"

min_up_members_checking

字符串

启用或禁用 min_up_members 功能。

如果启用此功能,则还必须为 min_up_membersmin_up_members_action 选项都指定一个值。

创建新的池时,如果未指定此参数,则默认为 disabled

选项

  • "enabled"

  • "disabled"

monitor_type

别名:availability_requirements_type

字符串

指定 monitors 时的监控规则类型。

创建新的池时,如果未指定此值,则使用默认值 and_list

当为 single 时,确保检查所有指定的监控器,但还包括检查以确保您只指定了一个监控器。

当为 and_list 时,确保检查**所有**监控器。

当使用 m_of_n 时,确保已检查了 quorummonitorsm_of_n **需要** 在 playbook 中设置或设备上已存在的 quorum 值大于等于1。

singleand_list 功能相同,因为 BIG-IP 将所有监控器视为“列表”。

选项

  • "and_list"

  • "m_of_n"

  • "single"

monitors

列表 / 元素=字符串

监控模板名称列表。如果监控器名称中未提供分区,则改为使用 partition 选项。

name

别名:pool

字符串

池名称

partition

字符串

管理资源的设备分区。

默认值: "Common"

priority_group_activation

别名:minimum_active_members

整数

指定系统是否根据分配给池成员的优先级编号来负载均衡流量。

创建新池时,如果未指定此参数,则使用默认值 0

要禁用此设置,请提供值 0

启用此设置后,您可以在创建新池或在池成员的属性屏幕上指定池成员优先级。

系统将相同优先级的池成员视为一个组。

要启用优先级组激活,请提供 065535 之间的数字,该数字表示在一个优先级组中必须可用的最小成员数,然后系统才能将流量定向到较低优先级组中的成员。

当更高优先级组中有足够数量的成员可用时,系统将再次将流量定向到更高优先级组。

quorum

别名:availability_requirements_at_least

整数

monitor_typem_of_n 时的监控器仲裁值。

monitor_typem_of_n 时,仲裁值必须大于等于 1。

reselect_tries

整数

设置被动故障后系统尝试联系池成员的次数。

service_down_action

字符串

设置节点在池中宕机时要采取的操作。

选项

  • "none"

  • "reset"

  • "drop"

  • "reselect"

slow_ramp_time

整数

设置缓慢增长时间(以秒为单位),以逐步增加新添加或新检测到的正常池成员的负载。

state

字符串

present 时,确保池存在并具有提供的属性。

absent 时,从系统中移除池。

选项

  • "absent"

  • "present" ← (默认)

description

字符串

指定标识池的描述性文本。

lb_method

字符串

负载均衡方法。创建新的池时,如果未指定此值,则使用默认值 round-robin

选项

  • "dynamic-ratio-member"

  • "dynamic-ratio-node"

  • "fastest-app-response"

  • "fastest-node"

  • "least-connections-member"

  • "least-connections-node"

  • "least-sessions"

  • "observed-member"

  • "observed-node"

  • "predictive-member"

  • "predictive-node"

  • "ratio-least-connections-member"

  • "ratio-least-connections-node"

  • "ratio-member"

  • "ratio-node"

  • "ratio-session"

  • "round-robin"

  • "weighted-least-connections-member"

  • "weighted-least-connections-node"

metadata

任意

您可以附加到池的任意键/值对。这在您可能希望注释由 Ansible 管理的池的情况下很有用。

键名存储为字符串;这包括作为数字的名称。

所有键的值都存储为字符串;这包括作为数字的值。

数据将被持久化,而不是临时数据。

min_up_members

整数

指定必须启动的池成员的最小数量,

否则,系统将采取 min-up-members-action 选项中指定的动作。

在具有冗余系统的网关池中使用此选项,其中单元编号应用于池。

这表示池仅在指定的单元上配置。

创建新的池时,如果未指定此参数,则默认为 0

min_up_members_action

字符串

如果 min_up_members_checkingenabled 并且活动池成员的数量低于 min_up_members 选项中指定的数量,则指定要采取的操作。

创建新的池时,如果未指定此参数,则默认为 failover

选项

  • "failover"

  • "reboot"

  • "restart-all"

min_up_members_checking

字符串

启用或禁用 min_up_members 功能。

如果启用此功能,则还必须为 min_up_membersmin_up_members_action 选项都指定一个值。

创建新的池时,如果未指定此参数,则默认为 disabled

选项

  • "enabled"

  • "disabled"

monitor_type

别名:availability_requirements_type

字符串

指定 monitors 时的监控规则类型。

创建新的池时,如果未指定此值,则使用默认值 and_list

当为 single 时,确保检查所有指定的监控器,但还包括检查以确保您只指定了一个监控器。

当为 and_list 时,确保检查**所有**监控器。

当使用 m_of_n 时,确保已检查了 quorummonitorsm_of_n **需要** 在 playbook 中设置或设备上已存在的 quorum 值大于等于1。

singleand_list 功能相同,因为 BIG-IP 将所有监控器视为“列表”。

选项

  • "and_list"

  • "m_of_n"

  • "single"

monitors

列表 / 元素=字符串

监控模板名称列表。如果监控器名称中未提供分区,则改为使用 partition 选项。

name

别名:pool

字符串

池名称

partition

字符串

管理资源的设备分区。

默认值: "Common"

priority_group_activation

别名:minimum_active_members

整数

指定系统是否根据分配给池成员的优先级编号来负载均衡流量。

创建新池时,如果未指定此参数,则使用默认值 0

要禁用此设置,请提供值 0

启用此设置后,您可以在创建新池或在池成员的属性屏幕上指定池成员优先级。

系统将相同优先级的池成员视为一个组。

要启用优先级组激活,请提供 065535 之间的数字,该数字表示在一个优先级组中必须可用的最小成员数,然后系统才能将流量定向到较低优先级组中的成员。

当更高优先级组中有足够数量的成员可用时,系统将再次将流量定向到更高优先级组。

provider

字典

f5networks.f5_modules 1.0.0 版本中添加

包含连接详细信息的字典对象。

auth_provider

字符串

配置 auth provider 以从远程设备获取身份验证令牌。

此选项在处理 BIG-IQ 设备时非常有用。

no_f5_teem

布尔值

如果为 yes,则不会将 TEEM 遥测数据发送到 F5。

您可以通过设置环境变量 F5_TELEMETRY_OFF 来省略此选项。

以前使用的变量 F5_TEEM 已弃用,因为其名称令人困惑。

选项

  • false ← (默认)

  • true

password

别名:pass, pwd

字符串 / 必需

用于连接到 BIG-IP 或 BIG-IQ 的用户帐户的密码。

您可以通过设置环境变量 F5_PASSWORD 来省略此选项。

server

字符串 / 必需

BIG-IP 主机或 BIG-IQ 主机。

您可以通过设置环境变量 F5_SERVER 来省略此选项。

server_port

整数

BIG-IP 服务器端口。

您可以通过设置环境变量 F5_SERVER_PORT 来省略此选项。

默认值: 443

timeout

整数

指定与网络设备通信的超时时间(以秒为单位),用于连接或发送命令。如果在操作完成之前超时,模块将出错。

transport

字符串

配置连接到远程设备时要使用的传输连接。

选项

  • "rest" ← (默认)

user

字符串 / 必需

连接到 BIG-IP 或 BIG-IQ 的用户名。此用户必须具有设备上的管理员权限。

您可以通过设置环境变量 F5_USER 来省略此选项。

validate_certs

布尔值

如果为 no,则不会验证 SSL 证书。仅在使用自签名证书的个人控制站点上使用此选项。

您可以通过设置环境变量 F5_VALIDATE_CERTS 来省略此选项。

选项

  • false

  • true ← (默认)

quorum

别名:availability_requirements_at_least

整数

monitor_typem_of_n 时的监控器仲裁值。

monitor_typem_of_n 时,仲裁值必须大于等于 1。

replace_all_with

别名:purge

布尔值

删除 aggregate 参数中未定义的池。

此操作是全部或无操作,这意味着如果有些池无法删除,它将停止。

选项

  • false ← (默认)

  • true

reselect_tries

整数

设置被动故障后系统尝试联系池成员的次数。

service_down_action

字符串

设置节点在池中宕机时要采取的操作。

选项

  • "none"

  • "reset"

  • "drop"

  • "reselect"

slow_ramp_time

整数

设置缓慢增长时间(以秒为单位),以逐步增加新添加或新检测到的正常池成员的负载。

state

字符串

present 时,确保池存在并具有提供的属性。

absent 时,从系统中移除池。

选项

  • "absent"

  • "present" ← (默认)

注释

注意

  • 有关使用 Ansible 管理 F5 网络设备的更多信息,请参阅 https://ansible.org.cn/integrations/networks/f5

  • 需要 BIG-IP 软件版本 >= 12。

  • F5 模块仅操作 F5 产品的运行配置。为了确保 BIG-IP 特定的配置持久保存到磁盘,请务必包含至少一个使用 f5networks.f5_modules.bigip_config 模块保存运行配置的任务。请参考模块的文档,了解保存运行配置的模块的正确用法。

示例

- name: Create pool
  bigip_pool:
    state: present
    name: my-pool
    partition: Common
    lb_method: least-connections-member
    slow_ramp_time: 120
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Modify load balancer method
  bigip_pool:
    state: present
    name: my-pool
    partition: Common
    lb_method: round-robin
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Set a single monitor (with enforcement)
  bigip_pool:
    state: present
    name: my-pool
    partition: Common
    monitor_type: single
    monitors:
      - http
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Set a single monitor (without enforcement)
  bigip_pool:
    state: present
    name: my-pool
    partition: Common
    monitors:
      - http
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Set multiple monitors (all must succeed)
  bigip_pool:
    state: present
    name: my-pool
    partition: Common
    monitor_type: and_list
    monitors:
      - http
      - tcp
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Set multiple monitors (at least 1 must succeed)
  bigip_pool:
    state: present
    name: my-pool
    partition: Common
    monitor_type: m_of_n
    quorum: 1
    monitors:
      - http
      - tcp
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Set multiple monitors (at least 2 must succeed)
  bigip_pool:
    state: present
    name: my-pool
    partition: Common
    availability_requirements_type: m_of_n
    availability_requirements_at_least: 2
    monitors:
      - http
      - tcp
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Delete pool
  bigip_pool:
    state: absent
    name: my-pool
    partition: Common
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Add metadata to pool
  bigip_pool:
    state: present
    name: my-pool
    partition: Common
    metadata:
      ansible: 2.4
      updated_at: 2017-12-20T17:50:46Z
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Add pools Aggregate
  bigip_pool:
    aggregate:
      - name: my-pool
        partition: Common
        lb_method: least-connections-member
        slow_ramp_time: 120
      - name: my-pool2
        partition: Common
        lb_method: least-sessions
        slow_ramp_time: 120
      - name: my-pool3
        partition: Common
        lb_method: round-robin
        slow_ramp_time: 120
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Add pools Aggregate, purge others
  bigip_pool:
    aggregate:
      - name: my-pool
        partition: Common
        lb_method: least-connections-member
        slow_ramp_time: 120
      - name: my-pool2
        partition: Common
        lb_method: least-sessions
        slow_ramp_time: 120
      - name: my-pool3
        partition: Common
        lb_method: round-robin
        slow_ramp_time: 120
    replace_all_with: true
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

返回值

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

描述

description

字符串

在池上设置的描述。

返回:changed

示例: "Pool of web servers"

lb_method

字符串

为池设置的负载均衡方法。

返回:changed

示例: "round-robin"

metadata

字典

池的新值。

返回:changed

示例: {"key1": "foo", "key2": "bar"}

monitor_type

字符串

池的 monitor_type 的更改值。

返回:changed

示例: "m_of_n"

monitors

列表 / 元素=字符串

在池上设置的监控器。

返回:changed

示例: ["/Common/http", "/Common/gateway_icmp"]

priority_group_activation

整数

激活优先级组的最小成员数的新值。

返回:changed

示例: 10

quorum

整数

在池上设置的仲裁值。

返回:changed

示例: 2

replace_all_with

布尔值

从设备中清除所有非聚合池

返回:changed

示例: true

reselect_tries

整数

为联系成员的尝试次数设置的新值。

返回:changed

示例: 10

service_down_action

字符串

在池上设置的服务宕机操作。

返回:changed

示例: "reset"

slow_ramp_time

整数

为缓慢增长时间设置的新值。

返回:changed

示例: 500

作者

  • Tim Rupp (@caphrim007)

  • Wojciech Wypior (@wojtek0806)