f5networks.f5_modules.bigip_data_group 模块 – 管理 BIG-IP 上的数据组

注意

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

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

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

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

f5networks.f5_modules 1.0.0 中的新增功能

概要

  • 允许管理 BIG-IP 上的数据组。数据组提供了一种在 BIG-IP 上存储值集合的方法,以便以后在 LTM 规则、iRule 和 ASM 策略等中使用。

参数

参数

注释

delete_data_group_file

布尔值

true 时,确保删除远程数据组文件。

此参数仅在 stateabsentinternalfalse 时才相关。

选项

  • false ← (默认)

  • true

description

字符串

数据组的描述。

external_file_name

字符串

创建新的数据组时,这指定了要在 BIG-IP 上为外部数据组文件提供的文件名。

internaltrue 时,忽略此参数。

此参数可用于选择现有数据组文件以与现有外部数据组一起使用。

如果未提供此值,则它将被赋予 name 中指定的值,因此与数据组的名称匹配。

此值只能包含字母、数字、下划线、短横线或句点。

internal

布尔值

此数据组的类型。

只有在您确切知道自己在做什么,**或者**您正在使用预先存在的内部数据组时,才应考虑设置此值。

请注意,如果您故意将此参数强制设置为 true,并且您有大量记录或总记录大小很大,则此大量数据将反映在您的 BIG-IP 配置中。由于解析和验证大型配置,这可能导致**很长**的系统配置加载时间。

当此参数为 true 时,上传限制为 4 MB 或 65,000 条记录,以较严格者为准。

创建数据组后,无法更改此值。

选项

  • false ← (默认)

  • true

name

字符串 / 必需

指定数据组的名称。

partition

字符串

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

默认值: "Common"

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

用户

字符串 / 必需

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

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

验证证书

布尔值

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

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

选项

  • false

  • true ← (默认)

记录

列表 / 元素=任意

指定要添加到数据组的记录。

如果您有大量记录,建议您使用 records_src,而不是在此处键入所有这些记录。

记录数量或所有记录总大小的技术限制。随系统上总资源(特别是 RAM)的大小而变化。

internalfalse 时,必须在 recordsrecords_src 中至少指定一条记录。

type 为:ipaddressaddr,如果地址使用非默认路由域,则必须明确说明,这意味着它们必须包含路由域表示法 %,例如 10.10.1.1%11。无论数据组是否位于分区中,这都是正确的。

字符串 / 必需

描述数据组中记录的键。

该键将用于验证此模块的 type 参数。

任意

描述数据组中记录的键的值。

records_src

路径

包含记录的文件的路径。

文件应格式良好。这意味着它包含每行一条的记录,格式类似于“键分隔符值”。例如,foo := bar

BIG-IP 对此格式要求严格,但此模块较为宽松。它允许您在分隔符的两侧包含任意数量(包括零)的空格。有关说明,请参见“示例”部分。

记录键的长度限制为不超过 65520 个字符。

记录键值的长度限制为不超过 65520 个字符。

BIG-IP 中可以拥有的记录总数受 BIG-IP 本身的内存限制。

此内容的格式略有不同,具体取决于您是否指定了 typeaddressintegerstring。有关数据组文件中预期不同类型的有效负载格式的示例,请参见示例部分。

internalfalse 时,必须在 recordsrecords_src 中至少指定一条记录。

分隔符

字符串

指定 records_src 时,这是用于将 records_src 中的条目分解为键/值对的字符字符串。

默认情况下,此参数的值为 :=

设置此值后,无法更改。

此参数仅在 internalfalse 时才相关。否则将被忽略。

默认值: ":="

状态

字符串

statepresent 时,确保数据组存在。

stateabsent 时,确保数据组被删除。

此模块中状态的使用是指整个数据组,而不是其成员。

选项

  • "present" ← (默认)

  • "absent"

类型

字符串

此数据组中记录的类型。

此参数很重要,因为它会导致 BIG-IP 以不同的方式存储您的数据以优化对其的访问。例如,指定包含 IP 地址的记录列表,但将其标记为 string 类型是错误的。

创建数据组后,无法更改此值。

选项

  • "address"

  • "addr"

  • "ip"

  • "string" ← (默认)

  • "integer"

  • "int"

注释

注意

  • 此模块不支持对类型为 internal 的数据组中的数据组成员进行原子更新。

  • 类型为 external 的数据组中的数据组成员的添加/删除应仅通过 Ansible 模块完成,如果手动进行更改,Ansible 模块将检测不到这些更改。

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

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

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

示例

- name: Create a data group of addresses
  bigip_data_group:
    name: foo
    internal: true
    records:
      - key: 0.0.0.0/32
        value: External_NAT
      - key: 10.10.10.10
        value: No_NAT
    type: address
    provider:
      password: secret
      server: lb.mydomain.com
      user: admin
  delegate_to: localhost

- name: Create a data group of strings
  bigip_data_group:
    name: foo
    internal: true
    records:
      - key: caddy
        value: ""
      - key: cafeteria
        value: ""
      - key: cactus
        value: ""
    type: string
    provider:
      password: secret
      server: lb.mydomain.com
      user: admin
  delegate_to: localhost

- name: Create a data group of IP addresses from a file
  bigip_data_group:
    name: foo
    records_src: /path/to/dg-file
    type: address
    provider:
      password: secret
      server: lb.mydomain.com
      user: admin
  delegate_to: localhost

- name: Update an existing internal data group of strings
  bigip_data_group:
    name: foo
    internal: true
    records:
      - key: caddy
        value: ""
      - key: cafeteria
        value: ""
      - key: cactus
        value: ""
    provider:
      password: secret
      server: lb.mydomain.com
      user: admin
  delegate_to: localhost

- name: Show the data format expected for records_content - address 1
  copy:
    dest: /path/to/addresses.txt
    content: |
      network 10.0.0.0 prefixlen 8 := "Network1",
      network 172.16.0.0 prefixlen 12 := "Network2",
      network 192.168.0.0 prefixlen 16 := "Network3",
      network 2402:9400:1000:0:: prefixlen 64 := "Network4",
      host 192.168.20.1 := "Host1",
      host 172.16.1.1 := "Host2",
      host 172.16.1.1 := "Host3",
      host 2001:0db8:85a3:0000:0000:8a2e:0370:7334 := "Host4",
      host 2001:0db8:85a3:0000:0000:8a2e:0370:7334 := "Host5"

- name: Show the data format expected for records_content - address 2
  copy:
    dest: /path/to/addresses.txt
    content: |
      10.0.0.0/8 := "Network1",
      172.16.0.0/12 := "Network2",
      192.168.0.0/16 := "Network3",
      2402:9400:1000:0::/64 := "Network4",
      192.168.20.1 := "Host1",
      172.16.1.1 := "Host2",
      172.16.1.1/32 := "Host3",
      2001:0db8:85a3:0000:0000:8a2e:0370:7334 := "Host4",
      2001:0db8:85a3:0000:0000:8a2e:0370:7334/128 := "Host5"

- name: Show the data format expected for records_content - string
  copy:
    dest: /path/to/strings.txt
    content: |
      a := alpha,
      b := bravo,
      c := charlie,
      x := x-ray,
      y := yankee,
      z := zulu,

- name: Show the data format expected for records_content - integer
  copy:
    dest: /path/to/integers.txt
    content: |
      1 := bar,
      2 := baz,
      3,
      4,

作者

  • Tim Rupp (@caphrim007)

  • Wojciech Wypior (@wojtek0806)

  • Greg Crosby (@crosbygw)