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(HSTS 模式)

布尔值

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

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

选项

  • false

  • true

hsts_preload(HSTS 预加载)

布尔值

在 f5networks.f5_modules 1.22.0 中添加

设置为 true 时,会将 HSTS 主机及其子域添加到浏览器的 HSTS 预加载列表中,该列表列出了仅被视为 HTTPS 的站点。

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

选项

  • false

  • true

include_subdomains(包含子域)

布尔值

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

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

选项

  • false

  • true

insert_xforwarded_for(插入 X-Forwarded-For)

布尔值

指定系统是否在 HTTP 请求中插入包含客户端 IP 地址的 X-Forwarded-For 报头,以便与连接池一起使用。

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

选项

  • false

  • true

maximum_age(最大年龄)

字符串

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

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

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

name(名称)

string / required(必需)

指定配置文件的名称。

oneconnect_transformations(OneConnect 变换)

布尔值

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

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

选项

  • false

  • true

parent(父级)

字符串

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

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

partition(分区)

字符串

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

默认值: "Common"

provider(提供程序)

字典

在 f5networks.f5_modules 1.0.0 中添加

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

auth_provider(身份验证提供程序)

字符串

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

此选项在使用 BIG-IQ 设备时才会真正使用。

no_f5_teem(禁用 F5 TEEM)

布尔值

如果 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(服务器端口)

integer(整数)

BIG-IP 服务器端口。

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

默认值: 443

timeout(超时)

integer(整数)

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

transport(传输)

字符串

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

选项

  • "rest" ← (默认)

user(用户)

string / required(必需)

连接到 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(sFlow)

字典

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

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

poll_interval(轮询间隔)

integer(整数)

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

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

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

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

poll_interval_global(全局轮询间隔)

布尔值

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

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

选项

  • false

  • true

sampling_rate(采样率)

integer(整数)

指定观察到的数据包与生成的样本的比率。例如,采样率为 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 替代名称)

列表 / 元素=字符串

指定 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 模式)

布尔值

启用HSTS设置。

返回值: changed

示例: false

hsts_preload(HSTS 预加载)

布尔值

启用HSTS预加载。

返回值: changed

示例: false

include_subdomains(包含子域)

布尔值

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

返回值: changed

示例: true

insert_xforwarded_for(插入 X-Forwarded-For)

布尔值

插入X-Forwarded-For-Header。

返回值: changed

示例: true

maximum_age(最大年龄)

字符串

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

返回值: changed

示例: "indefinite"

oneconnect_transformations(OneConnect 变换)

布尔值

启用或禁用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(sFlow)

complex

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

返回值: changed

示例: "hash/dictionary of values"

poll_interval(轮询间隔)

integer(整数)

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

返回值: changed

示例: 30

poll_interval_global(全局轮询间隔)

布尔值

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

返回值: changed

示例: true

sampling_rate(采样率)

integer(整数)

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

返回值: changed

示例: 2000

sampling_rate_global(全局采样率)

布尔值

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

返回值: changed

示例: true

xff_alternative_names(XFF 替代名称)

列表 / 元素=字符串

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

返回值: changed

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

作者

  • Wojciech Wypior (@wojtek0806)