f5networks.f5_modules.bigip_provision_async 模块 – 管理 BIG-IP 模块配置

注意

此模块是 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_provision_async

f5networks.f5_modules 1.25.0 中的新增功能

概要

  • 管理 BIG-IP 模块配置。此模块将以异步方式执行配置操作。有关更多信息,请参见“说明”部分。

参数

参数

注释

check_status

布尔值

如果为 true,则该模块将运行以检查配置进度。

如果使用 module 参数,则为必需参数。

选择

  • false ←(默认)

  • true

level

字符串

设置所请求模块的配置级别。更改一个模块的级别可能需要修改另一个模块的级别。例如,将一个模块更改为 dedicated 需要将所有其他模块设置为 none。将模块的级别设置为 none 表示该模块未激活。

如果 absent,则使用 state 将 c(level) 设置为 none 并取消配置模块。

此参数与 cgnat - pre tmos 15.0mgmt 无关,并且不会应用于 cgnat - pre tmos 15.0mgmt 模块。

选择

  • "dedicated"

  • "nominal" ←(默认)

  • "minimum"

memory

字符串

为管理模块设置额外的内存。这是在分配的最小 RAM 1264MB 之外的。

可接受的值范围是 0 - 8192。最大值受系统中可用 RAM 的限制。

指定 large 会为 mgmt 模块保留额外的 500MB。

指定 medium 会为 mgmt 模块保留额外的 200MB。

指定 small 不会为 mgmt 模块保留额外的 RAM。

对于包含 2000 个以上对象的配置,或者更具体地说,对于任何超出每 2 GB 已安装内存 1000 个对象的配置,请使用 large。在初始配置后更改管理 mgmt 大小会导致重新配置操作。

module

别名:name

字符串 / 必需

要在 BIG-IP 中配置的模块。

选择

  • "am"

  • "afm"

  • "apm"

  • "asm"

  • "avr"

  • "cgnat"

  • "fps"

  • "gtm"

  • "ilx"

  • "lc"

  • "ltm"

  • "mgmt"

  • "pem"

  • "sam"

  • "sslo"

  • "swg"

  • "urldb"

  • "vcmp"

provider

字典

在 f5networks.f5_modules 1.0.0 中添加

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

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 ← (默认)

state

字符串

系统上已配置模块的状态。 如果为 present,则保证指定的模块按照要求的级别进行配置,前提是设备上有足够的资源(例如物理 RAM)来支持该模块。

如果为 absent,则会取消配置该模块。

absent 不是 mgmt 模块的选项,因为它无法取消配置。

选择

  • "present" ← (默认)

  • "absent"

status_timeout

整数

等待配置过程完成的时间(以秒为单位)。

接受的值范围在 1503600 秒之间。

如果设备需要重启模块,它将返回无更改并显示相应的消息。在这种情况下,您必须暂停剧本的执行,直到设备准备就绪(请参阅 EXAMPLES 部分)。

默认值: 300

注意

注意

  • 使用 check_status 参数检查配置状态不是幂等的(请参阅 EXAMPLES 部分)。

  • 该模块允许与 bigip_provision 相同的配置操作,不同之处在于它不会等待服务重启或设备重启。 这是为了修复在某些环境中使用的这个模块时可能导致超时或陷入无限循环的边缘情况,即使配置操作成功。

  • 为了获得最佳效果,请将此模块与 bigip_wait 模块结合使用。

  • 此模块需要 TMOS 15.x 及以上版本。

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

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

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

示例

- name: Provision GTM on the device
  bigip_provision_async:
    module: "gtm"
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin

- name: Check for provision progress
  bigip_provision_async:
    module: "gtm"
    check_status: true
    status_timeout: 900
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  delegate_to: localhost
  register: status

- name: Wait for 3 minutes if device is restarting services
  bigip_wait:
    timeout: 180
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  delegate_to: localhost
  when:
    - result.message == "Device is restarting services, unable to check provisioning status."

- name: Re-check for provision progress
  bigip_provision_async:
    module: "gtm"
    check_status: true
    status_timeout: 900
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  delegate_to: localhost
  register: status
  when:
    - status.message == "Device is restarting services, unable to check provisioning status."

- name: Provision GTM on the device - Idempotent Check
  bigip_provision_async:
    module: "gtm"
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  delegate_to: localhost
  register: result
  when:
    - status.message == "Device has finished provisioning the requested module."

- name: Assert Provision GTM on the device - Idempotent Check
  assert:
    that:
      - result is not changed
  when:
    - status.message == "Device has finished provisioning the requested module."

- name: Provision VCMP on the device
  bigip_provision_async:
    module: "vcmp"
    level: "dedicated"
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  delegate_to: localhost

- name: Check for provision progress
  bigip_provision_async:
    module: "vcmp"
    level: "dedicated"
    check_status: true
    status_timeout: 900
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  delegate_to: localhost
  register: status

- name: Wait for 10 minutes if device is restarting services
  bigip_wait:
    timeout: 600
    type: vcmp
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  delegate_to: localhost
  when:
    - result.message == "Device is restarting services, unable to check provisioning status."

- name: Re-check for provision progress
  bigip_provision_async:
    module: "vcmp"
    level: "dedicated"
    check_status: true
    status_timeout: 900
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  delegate_to: localhost
  register: status
  when:
    - status.message == "Device is restarting services, unable to check provisioning status."

- name: Provision VCMP on the device - Idempotent Check
  bigip_provision_async:
    module: "vcmp"
    level: "dedicated"
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  register: result
  delegate_to: localhost
  when:
    - status.message == "Device has finished provisioning the requested module."

- name: Assert Provision VCMP on the device - Idempotent Check
  assert:
    that:
      - result is not changed
  when:
    - status.message == "Device has finished provisioning the requested module."

- name: De-provision VCMP on the device
  bigip_provision_async:
    module: "vcmp"
    state: "absent"
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin

- name: Check for de-provision progress
  bigip_provision_async:
    module: "vcmp"
    state: "absent"
    check_status: true
    status_timeout: 900
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  register: status

- name: Wait for 10 minutes if device is restarting services
  bigip_wait:
    timeout: 600
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  when:
    - result.message == "Device is restarting services, unable to check provisioning status."

- name: Re-check for de-provision progress
  bigip_provision_async:
    module: "vcmp"
    state: "absent"
    check_status: true
    status_timeout: 900
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  register: status
  when:
    - status.message == "Device is restarting services, unable to check provisioning status."

- name: De-provision VCMP on the device - Idempotent Check
  bigip_provision_async:
    module: "vcmp"
    state: "absent"
    provider:
      server: lb.mydomain.com
      password: secret
      user: admin
  register: result
  when:
    - status.message == "Device has finished de-provisioning the requested module."

- name: Assert Provision VCMP on the device - Idempotent Check
  assert:
    that:
      - result is not changed
  when:
    - status.message == "Device has finished de-provisioning the requested module."

返回值

常见的返回值已在 此处 文档中说明,以下是此模块特有的字段。

Key

描述

level

字符串

模块新的配置级别。

返回: changed

示例: "minimum"

memory

字符串

mgmt 模块新的配置内存量。

返回: changed

示例: "large"

message

字典

ansible 任务状态的信息性消息。

返回: changed

示例: "值的哈希/字典"

作者

  • Wojciech Wypior (@wojtek0806)