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

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

f5networks.f5_modules 1.0.0 中的新功能

概要

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

参数

参数

注释

aggregate

别名:pools

列表 / elements=dictionary

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

使用 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 时,确保检查 monitorsquorumm_of_n 要求在 playbook 中设置,或者设备上已经存在大于等于 1 的 quorum 值。

singleand_list 在功能上是相同的,因为 BIG-IP 将所有监视器都视为“一个列表”。

选择

  • "and_list"

  • "m_of_n"

  • "single"

monitors

list / elements=string

监控模板名称列表。如果未将分区作为监视器名称的一部分提供,则改用 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 时,确保检查 monitorsquorumm_of_n 要求在 playbook 中设置,或者设备上已经存在大于等于 1 的 quorum 值。

singleand_list 在功能上是相同的,因为 BIG-IP 将所有监视器都视为“一个列表”。

选择

  • "and_list"

  • "m_of_n"

  • "single"

monitors

list / elements=string

监控模板名称列表。如果未将分区作为监视器名称的一部分提供,则改用 partition 选项。

name

别名: pool

字符串

池名称

partition

字符串

用于管理资源的设备分区。

默认值: "Common"

priority_group_activation

别名: minimum_active_members

整数

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

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

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

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

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

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

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

provider

dictionary

在 f5networks.f5_modules 1.0.0 中添加

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

auth_provider

字符串

配置身份验证提供程序以从远程设备获取身份验证令牌。

此选项在与 BIG-IQ 设备一起使用时非常有用。

no_f5_teem

boolean

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

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

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

选择

  • false ← (默认值)

  • true

password

别名: pass, pwd

string / required

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

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

server

string / required

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

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

server_port

整数

BIG-IP 服务器端口。

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

默认值: 443

timeout

整数

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

transport

字符串

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

选择

  • "rest" ← (默认值)

user

string / required

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

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

validate_certs

boolean

如果为 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

boolean

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

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

选择

  • false ← (默认值)

  • true

reselect_tries

整数

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

service_down_action

字符串

设置当节点在池中关闭时要采取的操作。

选择

  • "none"

  • "reset"

  • "drop"

  • "reselect"

slow_ramp_time

整数

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

state

字符串

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

absent 时,从系统中删除该池。

选择

  • "absent"

  • "present" ← (默认值)

说明

注意

  • 有关使用 Ansible 管理 F5 Networks 设备的更多信息,请参见 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

示例: "Web 服务器池"

lb_method

字符串

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

返回: changed

示例: "轮询"

metadata

dictionary

池的新值。

返回: changed

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

monitor_type

字符串

更改池的 monitor_type 值。

返回: changed

示例: "m_of_n"

monitors

list / elements=string

在池上设置的监控器。

返回: changed

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

priority_group_activation

整数

激活优先级组所需的最小成员数。

返回: changed

示例: 10

quorum

整数

在池上设置的仲裁值。

返回: changed

示例: 2

replace_all_with

boolean

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

返回: changed

示例: true

reselect_tries

整数

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

返回: changed

示例: 10

service_down_action

字符串

在池上设置的服务关闭操作。

返回: changed

示例: "reset"

slow_ramp_time

整数

设置的慢速启动时间的新值。

返回: changed

示例: 500

作者

  • Tim Rupp (@caphrim007)

  • Wojciech Wypior (@wojtek0806)