On this page
win_uri - Interacts with webservices
New in version 2.1.
Synopsis
- Interacts with FTP, HTTP and HTTPS web services.
- Supports Digest, Basic and WSSE HTTP authentication mechanisms.
- For non-Windows targets, use the uri module instead.
Options
parameter | required | default | choices | comments |
---|---|---|---|---|
body |
no |
The body of the HTTP request/response to the web service.
|
||
client_cert
(added in 2.4)
|
no |
Specifies the client certificate(.pfx) that is used for a secure web request.
|
||
content_type |
no |
Sets the "Content-Type" header.
|
||
creates
(added in 2.4)
|
no |
A filename, when it already exists, this step will be skipped.
|
||
dest
(added in 2.3)
|
no |
Output the response body to a file.
|
||
follow_redirects
(added in 2.4)
|
no | safe |
|
Whether or not the
win_uri module should follow redirects.
all will follow all redirects.
none will not follow any redirects.
safe will follow only "safe" redirects, where "safe" means that the client is only doing a GET or HEAD on the URI to which it is being redirected.
|
headers |
no |
Key Value pairs for headers. Example "Host: www.somesite.com"
|
||
maximum_redirection
(added in 2.4)
|
no | 5 |
Specifies how many times
win_uri redirects a connection to an alternate Uniform Resource Identifier (URI) before the connection fails.
If maximum_redirection is set to 0 (zero) or follow_redirects is set to none , or set to safe when not doing GET or HEAD it prevents all redirection.
|
|
method |
no | GET |
|
The HTTP Method of the request or response.
|
password
(added in 2.4)
|
no |
Password to use for authentication.
|
||
removes
(added in 2.4)
|
no |
A filename, when it does not exist, this step will be skipped.
|
||
return_content
(added in 2.4)
|
no | no |
|
Whether or not to return the body of the response as a "content" key in the dictionary result. If the reported Content-type is "application/json", then the JSON is additionally loaded into a key called json in the dictionary results.
|
status_code
(added in 2.4)
|
no | 200 |
A valid, numeric, HTTP status code that signifies success of the request.
Can also be comma separated list of status codes.
|
|
timeout
(added in 2.4)
|
no | 30 |
Specifies how long the request can be pending before it times out (in seconds).
The value 0 (zero) specifies an indefinite time-out.
A Domain Name System (DNS) query can take up to 15 seconds to return or time out. If your request contains a host name that requires resolution, and you set timeout to a value greater than zero, but less than 15 seconds, it can take 15 seconds or more before your request times out.
|
|
url |
yes |
Supports FTP, HTTP or HTTPS URLs in the form of (ftp|http|https)://host.domain:port/path.
Also supports file:/// URLs through Invoke-WebRequest.
|
||
use_basic_parsing |
no | yes |
|
This module relies upon 'Invoke-WebRequest', which by default uses the Internet Explorer Engine to parse a webpage.
There's an edge-case where if a user hasn't run IE before, this will fail.
The only advantage to using the Internet Explorer praser is that you can traverse the DOM in a powershell script.
That isn't useful for Ansible, so by default we toggle 'UseBasicParsing'. However, you can toggle that off here.
|
user
(added in 2.4)
|
no |
Username to use for authentication.
|
||
validate_certs
(added in 2.4)
|
no | yes |
|
If no , SSL certificates will not be validated. This should only set to no used on personally controlled sites using self-signed certificates.
|
Examples
- name: Perform a GET and Store Output
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
win_uri:
url: http://example.com/
method: GET
headers:
host: www.somesite.com
- name: Perform a HEAD on an Endpoint
win_uri:
url: http://www.example.com/
method: HEAD
- name: POST a Body to an Endpoint
win_uri:
url: http://www.somesite.com/
method: POST
body: "{ 'some': 'json' }"
Return Values
Common return values are documented here Return Values, the following are the fields unique to this module:
name | description | returned | type | sample |
---|---|---|---|---|
body |
The content of the body used
|
when body is specified | string | {"id":1} |
content_type |
The "content-type" header used.
|
always | string | application/json |
headers |
The Headers of the response.
|
success | dict | {'Content-Type': 'application/json'} |
method |
The HTTP method used.
|
always | string | GET |
raw_content |
The raw content of the HTTP response.
|
success | string | HTTP/1.1 200 OK\nX-XSS-Protection: 1; mode=block\nAlternate-Protocol: 443:quic,p=1\nAlt-Svc: quic="www.google.com:443"; |
raw_content_length |
The byte size of the response.
|
success | int | 54447 |
status_code |
The HTTP Status Code of the response.
|
success | int | 200 |
status_description |
A summery of the status.
|
success | string | OK |
url |
The Target URL
|
always | string | https://www.ansible.com |
use_basic_parsing |
The state of the "use_basic_parsing" flag.
|
always | bool | True |
Notes
Note
- For non-Windows targets, use the uri module instead.
Status
This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.
For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Testing Ansible and Developing Modules.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/win_uri_module.html