ansible.windows.win_uri 模块 – 与 Web 服务交互

注意

此模块是 ansible.windows 集合(版本 2.5.0)的一部分。

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

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

要在 playbook 中使用它,请指定: ansible.windows.win_uri

概要

  • 与 FTP、HTTP 和 HTTPS Web 服务交互。

  • 支持摘要式、基本式和 WSSE HTTP 身份验证机制。

  • 对于非 Windows 目标,请改用 ansible.builtin.uri 模块。

参数

参数

注释

body

any

Web 服务的 HTTP 请求/响应的主体。

client_cert

string

用于 X509 身份验证的客户端证书 (.pfx) 的路径。此路径可以是文件系统上 pfx 的路径,也可以是 PowerShell 证书路径 Cert:\CurrentUser\My\<thumbprint>

如果证书文件未受密码保护,则 WinRM 连接必须使用 CredSSP 进行身份验证,或者在任务中使用 become

其他身份验证类型可以在证书受密码保护时设置 client_cert_password

client_cert_password

string

如果证书受密码保护,则 client_cert 的密码。

content_type

string

设置“Content-Type”标头。

creates

path

文件名,当它已存在时,此步骤将被跳过。

dest

path

将响应主体输出到文件。

follow_redirects

string

模块是否应遵循重定向。

all 将遵循所有重定向。

none 将不遵循任何重定向。

safe 将仅遵循“安全”重定向,“安全”是指客户端仅对要重定向到的 URI 执行 GETHEAD

当遵循重定向的 URL 时,Authorization 标头和设置的任何凭据都将被删除,并且不会被重定向。

选项

  • "all"

  • "none"

  • "safe" ← (默认)

force_basic_auth

boolean

默认情况下,仅当 Web 服务对初始请求返回 401 状态时,才会发送身份验证标头。由于某些基本身份验证服务未正确发送 401,因此登录将失败。

此选项强制在原始请求时发送基本身份验证标头。

选项

  • false ← (默认)

  • true

headers

dictionary

要在请求中设置的额外标头。

这应该是一个字典,其中键是标头名称,值是该标头的值。

http_agent

string

要标识为的标头,通常出现在 Web 服务器日志中。

这在 HTTP 请求中设置为 User-Agent 标头。

默认值: "ansible-httpget"

maximum_redirection

integer

指定在连接失败之前,模块将连接重定向到备用 URI 的次数。

如果设置为 0follow_redirects 设置为 none,或者在未执行 GETHEAD 时设置为 safe,则会阻止所有重定向。

默认值: 50

proxy_password

string

proxy_username 的密码。

proxy_url

string

用于请求的显式代理。

默认情况下,除非将 use_proxy 设置为 no,否则请求将使用 IE 定义的代理。

proxy_use_default_credential

boolean

使用当前用户的凭据与受 NTLMKerberosNegotiate 身份验证保护的代理主机进行身份验证。

使用 Basic 身份验证的代理仍然需要通过 proxy_usernameproxy_password 选项提供显式凭据。

如果使用密码的 become,使用密码通过 SSH 连接,或者使用 CredSSP具有委托的 Kerberos 通过 WinRM 连接,则模块只能访问用户的凭据。

如果不使用 become 或与上述方法不同的身份验证方法,则将没有可用的默认凭据,也不会发生代理身份验证。

选项

  • false ← (默认)

  • true

proxy_username

string

用于代理身份验证的用户名。

removes

path

文件名,当它不存在时,此步骤将被跳过。

return_content

boolean

是否在字典结果中以“content”键返回响应的主体。如果报告的 Content-type 为“application/json”,则 JSON 还会加载到字典结果中名为 json 的键中。

选项

  • false ← (默认)

  • true

status_code

list / elements=integer

一个有效的、数字的 HTTP 状态码,表示请求成功。

也可以是逗号分隔的状态码列表。

默认值: [200]

url

字符串 / 必需

支持 FTP、HTTP 或 HTTPS URL,格式为 (ftp|http|https)://host.domain:port/path。

url_method

别名:method

string

请求的 HTTP 方法。

默认值: "GET"

url_password

string

url_username 的密码。

url_timeout

别名:timeout

integer

指定请求在超时前可以挂起多长时间(以秒为单位)。

设置为 0 以指定无限超时。

默认值: 30

url_username

string

用于身份验证的用户名。

use_default_credential

boolean

当使用 NTLMKerberosNegotiate 身份验证保护的服务器进行身份验证时,使用当前用户的凭据。

使用 Basic 身份验证的站点仍然需要通过 url_usernameurl_password 选项提供显式凭据。

如果使用密码的 become,使用密码通过 SSH 连接,或者使用 CredSSP具有委托的 Kerberos 通过 WinRM 连接,则模块只能访问用户的凭据。

如果不使用 become 或与上述不同的身份验证方法,将没有可用的默认凭据,也不会进行身份验证。

选项

  • false ← (默认)

  • true

use_proxy

boolean

如果为 no,则不会使用为当前用户在 IE 中定义的代理。

选项

  • false

  • true ← (默认)

validate_certs

boolean

如果为 no,则不会验证 SSL 证书。

这只应该用于使用自签名证书的个人控制站点。

选项

  • false

  • true ← (默认)

另请参阅

另请参阅

ansible.builtin.uri

与 Web 服务交互。

ansible.windows.win_get_url

从 HTTP、HTTPS 或 FTP 将文件下载到节点。

community.windows.win_inet_proxy

管理 WinINet 和 Internet Explorer 的代理设置。

示例

- name: Perform a GET and Store Output
  ansible.windows.win_uri:
    url: http://example.com/endpoint
  register: http_output

# Set a HOST header to hit an internal webserver:
- name: Hit a Specific Host on the Server
  ansible.windows.win_uri:
    url: http://example.com/
    method: GET
    headers:
      host: www.somesite.com

- name: Perform a HEAD on an Endpoint
  ansible.windows.win_uri:
    url: http://www.example.com/
    method: HEAD

- name: POST a Body to an Endpoint
  ansible.windows.win_uri:
    url: http://www.somesite.com/
    method: POST
    body: "{ 'some': 'json' }"

返回值

常见的返回值记录在这里,以下是此模块特有的字段

描述

content

string

HTTP 响应的原始内容。

返回:成功且 return_content 为 True

示例: "{\"foo\": \"bar\"}"

content_length

integer

响应的字节大小。

返回:成功

示例: 54447

elapsed

浮点数

执行下载时经过的秒数。

返回:总是

示例: 23.2

json

dictionary

以字典形式返回的 content 下的 json 结构。

返回:成功且 Content-Type 为 “application/json” 或 “application/javascript” 且 return_content 为 True

示例: {"this-is-dependent": "on the actual return content"}

status_code

integer

响应的 HTTP 状态代码。

返回:成功

示例: 200

status_description

string

状态的摘要。

返回:成功

示例: "OK"

url

string

目标 URL。

返回:总是

示例: "https://ansible.org.cn"

作者

  • Corwin Brown (@blakfeld)

  • Dag Wieers (@dagwieers)