f5networks.f5_modules.bigip_iapp_service 模块 – 在 BIG-IP 上管理 TCL iApp 服务

注意

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

f5networks.f5_modules 1.0.0 中的新增功能

概要

  • 在 BIG-IP 上管理 TCL iApp 服务。

  • 系统用于与 BIG-IP 通信的 API 是 /mgmt/tm/sys/application/service/

参数

参数

注释

description

字符串

iApp 服务的描述。

如果在 Ansible 任务中指定此选项,则它优先于您在 parameters 字段中提供的 iApp 服务有效负载中的任何类似设置。

device_group

字符串

iApp 服务的设备组。

如果在 Ansible 任务中指定此选项,则它优先于您在 parameters 字段中提供的 iApp 服务有效负载中的任何类似设置。

force

布尔值

强制更新 iApp 服务,即使服务参数没有更改。如果底层服务的 iApp 模板已就地更新,则此选项尤为重要。如果该模板已更改,则此选项等效于重新配置 iApp。

选项

  • false ← (默认)

  • true

metadata

列表 / 元素=任意

与 iApp 服务关联的元数据。

如果在 Ansible 任务中指定此选项,则它优先于您在 parameters 字段中提供的 iApp 服务有效负载中的任何类似设置。

name

字符串 / 必需

要部署的 iApp 服务的名称。

parameters

字典

iApp 模板的所有必需模板变量的哈希值。如果您的参数存储在文件中(更常见的情况),我们建议您使用 filetemplate 查询来提供预期的参数。

这些参数通常由 liststablesvariables 字段组成。

partition

字符串

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

默认值: "Common"

provider

字典

f5networks.f5_modules 1.0.0 中添加

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

auth_provider

字符串

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

此选项在与 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 时,确保 iApp 服务已创建并运行。当 absent 时,确保 iApp 服务已被删除。

选项

  • "present" ← (默认)

  • "absent"

strict_updates

布尔值

指示应用程序服务是否绑定到模板,以便在更新模板时,应用程序服务也会发生变化以反映更新。

true 时,如果 iApp 服务创建的资源没有通过 iApp 直接更新,则不允许对这些资源进行任何更新。

false 时,允许在 iApp 之外进行更新。

如果在 Ansible 任务中指定此选项,则它优先于您在 parameters 字段中提供的 iApp 服务有效负载中的任何类似设置。

选项

  • false

  • true

template

字符串

用于实例化新服务的 iApp 模板。此模板必须存在于您的 BIG-IP 上,您才能成功创建服务。

创建新服务时,此参数是必需的。

traffic_group

字符串

iApp 服务的流量组。创建新服务时,如果未指定此值,则使用默认值 /Common/traffic-group-1

如果在 Ansible 任务中指定此选项,则它优先于您在 parameters 字段中提供的 iApp 服务有效负载中的任何类似设置。

注释

注意

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

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

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

示例

- name: Create HTTP iApp service from iApp template
  bigip_iapp_service:
    name: foo-service
    template: f5.http
    parameters: "{{ lookup('file', 'f5.http.parameters.json') }}"
    state: present
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

- name: Upgrade foo-service to v1.2.0rc4 of the f5.http template
  bigip_iapp_service:
    name: foo-service
    template: f5.http.v1.2.0rc4
    state: present
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

- name: Configure a service using parameters in YAML
  bigip_iapp_service:
    name: tests
    template: web_frontends
    state: present
    parameters:
      variables:
        - name: var__vs_address
          value: 1.1.1.1
        - name: pm__apache_servers_for_http
          value: 2.2.2.1:80
        - name: pm__apache_servers_for_https
          value: 2.2.2.2:80
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

- name: Re-configure a service whose underlying iApp was updated in place
  bigip_iapp_service:
    name: tests
    template: web_frontends
    force: true
    state: present
    parameters:
      variables:
        - name: var__vs_address
          value: 1.1.1.1
        - name: pm__apache_servers_for_http
          value: 2.2.2.1:80
        - name: pm__apache_servers_for_https
          value: 2.2.2.2:80
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

- name: Try to remove the iApp template before the associated Service is removed
  bigip_iapp_template:
    name: web_frontends
    state: absent
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  register: result
  failed_when:
    - result is not success
    - "'referenced by one or more applications' not in result.msg"

- name: Configure a service using more complicated parameters
  bigip_iapp_service:
    name: tests
    template: web_frontends
    state: present
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
    parameters:
      variables:
        - name: var__vs_address
          value: 1.1.1.1
        - name: pm__apache_servers_for_http
          value: 2.2.2.1:80
        - name: pm__apache_servers_for_https
          value: 2.2.2.2:80
      lists:
        - name: irules__irules
          value:
            - foo
            - bar
      tables:
        - name: basic__snatpool_members
        - name: net__snatpool_members
        - name: optimizations__hosts
        - name: pool__hosts
          columnNames:
            - name
          rows:
            - row:
                - internal.company.bar
        - name: pool__members
          columnNames:
            - addr
            - port
            - connection_limit
          rows:
            - row:
                - "none"
                - 80
                - 0
        - name: server_pools__servers
  delegate_to: localhost

- name: Override metadata that may or may not exist in parameters
  bigip_iapp_service:
    name: foo-service
    template: f5.http
    parameters: "{{ lookup('file', 'f5.http.parameters.json') }}"
    metadata:
      - persist: true
        name: data 1
      - persist: true
        name: data 2
    state: present
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

作者

  • Tim Rupp (@caphrim007)

  • Wojciech Wypior (@wojtek0806)