f5networks.f5_modules.bigip_profile_http 模块 – 在 BIG-IP 上管理 HTTP 配置文件

注意

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

f5networks.f5_modules 1.0.0 中的新增功能

概要

  • 在 BIG-IP 设备上管理 HTTP 配置文件。

参数

参数

注释

accept_xff

布尔值

根据请求的 XFF (X-forwarded-for) 头部(如果存在),启用或禁用信任客户端 IP 地址以及来自客户端 IP 地址的统计信息。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • false

  • true

description

字符串

配置文件的描述。

dns_resolver

字符串

指定已配置的 DNS 解析器的名称,当 proxy_type 设置为 explicit 时,此选项是必需的。

名称格式可以以分区开头(/Common/foo),也可以仅指定为对象名称(foo)。

要删除条目,可以设置值为 none'',但是配置文件 proxy_type 必须不设置为 explicit

字符串

Cookie 加密的密码。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

encrypt_cookies

列表 / 元素=字符串

系统要加密的 Cookie 名称。

要完全删除条目,请设置值为 none''

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

enforcement

字典

指定 HTTP 配置文件的协议强制执行设置。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

excess_client_headers

字符串

指定收到过多客户端标头时的行为。

如果设置为 pass-through,则切换到直通模式;如果设置为 reject,则拒绝连接。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • "reject"

  • "pass-through"

excess_server_headers

字符串

指定收到过多服务器标头时的行为。

如果设置为 pass-through,则切换到直通模式;如果设置为 reject,则拒绝连接。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • "reject"

  • "pass-through"

known_methods

列表 / 元素=字符串

指定哪些 HTTP 方法算作已知方法,从此列表中删除 RFC 定义的方法将导致 HTTP 过滤器无法识别它们。

系统提供的默认列表包括:CONNECTDELETEGETHEADLOCKOPTIONSPOSTPROPFINDPUTTRACEUNLOCK。可以通过将 default 关键字指定为列表元素之一来追加列表。

default 关键字也可用于恢复系统上的默认 known_methods

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

max_header_count

字符串

指定 HTTP 请求/响应中允许的最大标头数。

有效值范围为 16 到 4096(含)。

设置为 default 时,值为 64

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

max_header_size

字符串

指定以字节为单位的最大标头大小。

有效值范围为 0 到 4294967295(含)。

设置为 default 时,值为 32768 字节

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

max_requests

字符串

指定系统每个连接接受的请求数。

有效值范围为 0 到 4294967295(含)。

设置为 default 时,值为 0,这意味着系统不会限制每个连接的请求数。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

oversize_client_headers

字符串

指定收到过大的客户端标头时的行为。

如果设置为 pass-through,则切换到直通模式;如果设置为 reject,则拒绝连接。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • "reject"

  • "pass-through"

oversize_server_headers

字符串

指定收到过大的服务器标头时的行为。

如果设置为 pass-through,则切换到直通模式;如果设置为 reject,则拒绝连接。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • "reject"

  • "pass-through"

pipeline

字符串

启用 HTTP/1.1 管道处理,允许客户端即使在之前的请求未收到响应时也能发出请求。

为了成功实现这一点,目标服务器必须包含对管道处理的支持。

如果设置为 pass-through,则管道数据会导致 BIG-IP 立即切换到直通模式并禁用 HTTP 过滤器。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • "allow"

  • "reject"

  • "pass-through"

truncated_redirects

布尔值

指定如果从服务器看到截断的重定向会发生什么。

如果 true,则将重定向转发给客户端,否则将静默忽略格式错误的 HTTP。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • false

  • true

unknown_method

字符串

指定在解析未知 HTTP 方法时是否允许、拒绝或切换到直通模式。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • "allow"

  • "reject"

  • "pass-through"

fallback_host

字符串

指定 HTTP 后备主机。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

fallback_status_codes

列表 / 元素=字符串

指定来自服务器响应的一个或多个 HTTP 错误代码,这些代码应触发重定向到后备主机。

接受的有效错误代码如 RFC2616 中所定义。

代码可以指定为单个项目或有效范围,例如 400-417500-505

在不同错误类型之间混合响应代码范围是无效的,例如定义 400-505 将会引发错误。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

header_erase

字符串

HTTP 请求中一个由系统移除的报头名称。

要完全删除条目,请设置值为 none''

报头的格式必须为 KEY:VALUE 格式,否则会发生错误。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

header_insert

字符串

系统作为报头插入 HTTP 请求中的字符串。

要完全删除条目,请设置值为 none''

报头的格式必须为 KEY:VALUE 格式,否则会发生错误。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

hsts_mode

布尔值

设置为 true 时,启用 HSTS 设置。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • false

  • true

hsts_preload

布尔值

新增于 f5networks.f5_modules 1.22.0

设置为 true 时,将 HSTS 主机及其子域添加到浏览器的 HSTS 预加载列表中,这些站点被认为仅支持 HTTPS。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • false

  • true

include_subdomains

布尔值

设置为 true 时,将 HSTS 策略应用于 HSTS 主机及其子域。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • false

  • true

insert_xforwarded_for

布尔值

指定系统在 HTTP 请求中插入一个 X-Forwarded-For 报头,其中包含客户端 IP 地址,用于连接池。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • false

  • true

maximum_age

字符串

指定 HSTS 功能请求客户端仅使用 HTTPS 连接到当前主机及其域名任何子域的最长时间(以秒为单位)。

可接受的值范围为 0 - 4294967295 秒。值为 0 秒将重新启用明文 HTTP 访问,而指定 indefinite 将将其设置为最大值。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

name

字符串 / 必填

指定配置文件的名称。

oneconnect_transformations

布尔值

使系统能够执行 HTTP 报头转换以保持服务器端连接打开。此功能需要 OneConnect 配置文件。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • false

  • true

parent

字符串

指定此配置文件继承设置的配置文件。

创建新配置文件时,如果未指定此参数,则默认为系统提供的 http 配置文件。

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

user

字符串 / 必填

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

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

validate_certs

布尔值

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

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

选项

  • false

  • true ← (默认)

proxy_type

字符串

指定配置文件的代理模式。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • "reverse"

  • "transparent"

  • "explicit"

redirect_rewrite

字符串

指定系统是否重写作为 HTTP 重定向 (3XX) 响应一部分的 URI。

设置为 none 时,系统不会重写任何 HTTP 重定向响应中的 URI。

设置为 all 时,系统将重写所有 HTTP 重定向响应中的 URI。

设置为 matching 时,系统将重写与请求 URI 匹配的任何 HTTP 重定向响应中的 URI。

设置为 nodes 时,如果 URI 包含节点 IP 地址而不是主机名,则系统会将其更改为虚拟服务器地址。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • "none"

  • "all"

  • "matching"

  • "nodes"

request_chunking

字符串

指定如何处理分块和非分块请求。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • "rechunk"

  • "selective"

  • "preserve"

  • "sustain"

  • "unchunk"

response_chunking

字符串

指定如何处理分块和非分块响应。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • "rechunk"

  • "selective"

  • "preserve"

  • "sustain"

  • "unchunk"

server_agent_name

字符串

指定用作 BIG-IP 生成的流量中服务器名称的字符串。

要完全删除条目,请设置值为 none''

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

sflow

字典

指定 HTTP 配置文件的 sFlow 设置。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

poll_interval

整数

指定两次轮询之间的最大间隔(以秒为单位)。

有效值范围介于 0 到 4294967295 秒(含)。

要使此设置生效,必须将 poll_interval_global 参数设置为 no

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

poll_interval_global

布尔值

指定全局 HTTP 轮询间隔设置是否覆盖对象级别的 poll-interval 设置。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • false

  • true

sampling_rate

整数

指定观察到的数据包与生成的样本的比率。例如,采样率为 2000 指定将为观察到的每 2000 个数据包随机生成 1 个样本。

有效值范围介于 0 到 4294967295 个数据包(含)。

要使此设置生效,必须将 sampling_rate_global 参数设置为 no

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

sampling_rate_global

布尔值

指定全局 HTTP 采样率设置是否覆盖对象级别的采样率设置。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

选项

  • false

  • true

state

字符串

当为 present 时,确保配置文件存在。

当为 absent 时,确保配置文件被移除。

选项

  • "present" ← (默认)

  • "absent"

update_password

字符串

always 将在指定 encrypt_cookie_secret 时更新密码。

on_create 仅为新创建的配置文件设置密码。

选项

  • "always" ← (默认)

  • "on_create"

xff_alternative_names

列表 / 元素=字符串

指定替代 XFF 报头而不是默认的 X-forwarded-for 报头。

创建新配置文件时,如果未指定此参数,则默认值由父配置文件提供。

备注

注意

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

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

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

示例

- name: Create HTTP profile
  bigip_profile_http:
    name: my_profile
    insert_xforwarded_for: true
    redirect_rewrite: all
    state: present
    provider:
      user: admin
      password: secret
      server: lb.mydomain.com
  delegate_to: localhost

- name: Remove HTTP profile
  bigip_profile_http:
    name: my_profile
    state: absent
    provider:
      server: lb.mydomain.com
      user: admin
      password: secret
  delegate_to: localhost

- name: Add HTTP profile for transparent proxy
  bigip_profile_http:
    name: my_profile
    proxy_type: transparent
    provider:
      password: secret
      server: lb.mydomain.com
      user: admin
  delegate_to: localhost

返回值

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

Key

描述

accept_xff

布尔值

启用或禁用信任客户端 IP 地址以及来自客户端 IP 地址的统计信息。

返回: changed

示例: true

description

字符串

配置文件的描述。

返回: changed

示例: "My profile"

dns_resolver

字符串

已配置的DNS解析器。

返回: changed

示例: "/Common/FooBar"

encrypt_cookies

列表 / 元素=字符串

要加密的 Cookie 名称。

返回: changed

示例: ["MyCookie1", "MyCookie2"]

enforcement

complex

指定 HTTP 配置文件的协议强制执行设置。

返回: changed

示例: "hash/dictionary of values"

excess_server_headers

字符串

指定收到过多服务器标头时的行为。

返回: changed

示例: "pass-through"

known_methods

列表 / 元素=字符串

已知的 HTTP 方法列表。

返回: changed

示例: ["default", "FOO", "BAR"]

max_header_count

字符串

HTTP 请求/响应中允许的最大报头数。

返回: changed

示例: "4096"

max_header_size

字符串

以字节为单位指定的最大报头大小。

返回: changed

示例: "default"

max_requests

字符串

系统按每个连接接受的请求数。

返回: changed

示例: "default"

oversize_client_headers

字符串

指定收到过大的客户端标头时的行为。

返回: changed

示例: "reject"

oversize_server_headers

字符串

指定收到过大的服务器标头时的行为。

返回: changed

示例: "reject"

pipeline

字符串

处理流水线数据时,允许、拒绝或切换到直通模式。

返回: changed

示例: "allow"

truncated_redirects

布尔值

指定如果从服务器看到截断的重定向会发生什么。

返回: changed

示例: true

unknown_method

字符串

解析未知 HTTP 方法时,允许、拒绝或切换到直通模式。

返回: changed

示例: "allow"

fallback_host

字符串

指定 HTTP 后备主机。

返回: changed

示例: "foobar.com"

fallback_status_codes

列表 / 元素=字符串

服务器响应中的 HTTP 错误代码,应触发重定向到备用主机。

返回: changed

示例: ["400-404", "500", "501"]

header_erase

字符串

HTTP 请求中一个由系统移除的报头名称。

返回: changed

示例: "FOO:BAR"

header_insert

字符串

系统在HTTP请求中插入作为报头的字符串。

返回: changed

示例: "FOO:BAR"

hsts_mode

布尔值

启用HSTS设置。

返回: changed

示例: false

hsts_preload

布尔值

启用HSTS预加载。

返回: changed

示例: false

include_subdomains

布尔值

将HSTS策略应用于HSTS主机及其子域。

返回: changed

示例: true

insert_xforwarded_for

布尔值

插入X-Forwarded-For-Header。

返回: changed

示例: true

maximum_age

字符串

HSTS功能请求客户端仅使用HTTPS的最多时间长度(以秒为单位)。

返回: changed

示例: "indefinite"

oneconnect_transformations

布尔值

启用或禁用HTTP报头转换。

返回: changed

示例: false

parent

字符串

指定此配置文件继承设置的配置文件。

返回: changed

示例: "/Common/http"

proxy_type

字符串

指定配置文件的代理模式。

返回: changed

示例: "explicit"

redirect_rewrite

字符串

重写3xx响应中包含的URI。

返回: changed

示例: "all"

request_chunking

字符串

指定如何处理分块和非分块请求。

返回: changed

示例: "rechunk"

response_chunking

字符串

指定如何处理分块和非分块响应。

返回: changed

示例: "rechunk"

server_agent_name

字符串

BIG-IP生成的流量中用作服务器名称的字符串。

返回: changed

示例: "foobar"

sflow

complex

指定 HTTP 配置文件的 sFlow 设置。

返回: changed

示例: "hash/dictionary of values"

poll_interval

整数

指定两次轮询之间的最大间隔(以秒为单位)。

返回: changed

示例: 30

poll_interval_global

布尔值

启用/禁用覆盖HTTP轮询间隔设置。

返回: changed

示例: true

sampling_rate

整数

指定观察到的数据包与生成的样本的比率。

返回: changed

示例: 2000

sampling_rate_global

布尔值

启用/禁用覆盖HTTP采样率设置。

返回: changed

示例: true

xff_alternative_names

列表 / 元素=字符串

指定替代 XFF 报头而不是默认的 X-forwarded-for 报头。

返回: changed

示例: ["FooBar", "client1"]

作者

  • Wojciech Wypior (@wojtek0806)