uri - Взаимодействие с веб-сервисами
Описание
- Взаимодействует с веб-сервисами HTTP и HTTPS и поддерживает механизмы аутентификации HTTP Digest, Basic и WSSE.
- Для целевых систем Windows используйте модуль win_uri.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| body | Тело запроса/ответа HTTP к веб-сервису. Если body_format установлено в 'json', оно будет принимать уже отформатированную строку JSON или преобразовывать структуру данных в JSON. Если body_format установлено в 'form-urlencoded', оно будет преобразовывать словарь или список кортежей в строку 'application/x-www-form-urlencoded'. (Добавлено в версии 2.7) | |
| body_format (добавлено в 2.0) |
| Формат сериализации тела. При установке в json или form-urlencoded, кодирует аргумент тела, если необходимо, и автоматически устанавливает заголовок Content-Type соответственно. Начиная с 2.3, можно переопределить заголовок `Content-Type`, если он установлен в json или form-urlencoded через опцию headers. |
| client_cert (добавлено в 2.4) | Файл сертификата цепочки в формате PEM, используемый для аутентификации клиента SSL. Этот файл также может содержать ключ, и если ключ включён, то опция client_key не требуется. | |
| client_key (добавлено в 2.4) | Файл в формате PEM, содержащий ваш закрытый ключ, используемый для аутентификации клиента SSL. Если client_cert содержит как сертификат, так и ключ, эта опция не требуется. | |
| creates | Имя файла. Если файл уже существует, этот шаг не будет выполнен. | |
| dest | Путь для загрузки файла (при необходимости). Если dest является каталогом, будет использовано имя файла с удалённого сервера. | |
| follow_redirects |
| Следовать ли перенаправлениям URI-модуля. all следует всем перенаправлениям. safe следует только «безопасным» перенаправлениям, где «безопасный» означает, что клиент выполняет только GET или HEAD на URI, на который он перенаправляется. none не следует никаким перенаправлениям. Обратите внимание, что варианты yes и no принимаются для обратной совместимости, где yes эквивалентно all, а no эквивалентно safe. yes и no устарели и будут удалены в будущих версиях Ansible. |
| force_basic_auth bool |
| Библиотека, используемая модулем uri, отправляет информацию об аутентификации только тогда, когда веб-сервис отвечает на начальный запрос статусом 401. Поскольку некоторые службы basic auth не отправляют 401 должным образом, авторизация может не сработать. Эта опция принудительно отправляет заголовок Basic аутентификации при первоначальном запросе. |
| HEADER_ | Любой параметр, начинающийся с "HEADER_", отправляется в вашем запросе в качестве заголовка. Например, HEADER_Content-Type="application/json" отправит заголовок "Content-Type" вместе с вашим запросом со значением "application/json". Эта опция устарела с 2.1 и будет удалена в Ansible-2.9. Используйте headers вместо этого. | |
| headers (добавлено в 2.1) | Добавить пользовательские HTTP-заголовки в запрос в формате YAML-хэша. Начиная с 2.3, предоставление Content-Type здесь переопределит заголовок, сгенерированный при указании json или form-urlencoded для body_format. | |
| method |
| HTTP-метод запроса или ответа. ОН ДОЛЖЕН быть ЗАГЛАВНЫМ. |
| others | Все аргументы, принимаемые модулем file, также работают здесь | |
| password | Пароль для использования модулем для аутентификации Digest, Basic или WSSE. | |
| removes | Имя файла. Если файл не существует, этот шаг не будет выполнен. | |
| return_content bool |
| Возвращать ли тело ответа в качестве ключа "content" в результате словаря. Если указанный Content-type равен "application/json", то JSON дополнительно загружается в ключ json в результатах словаря. |
| status_code | Значение по умолчанию: 200 | Список допустимых числовых HTTP-кодов состояния, указывающих на успешность запроса. |
| timeout | Значение по умолчанию: 30 | Таймаут уровня сокета в секундах |
| url требуется | HTTP или HTTPS URL в формате (http|https)://host.domain[:port]/path | |
| user | Имя пользователя для использования модулем для аутентификации Digest, Basic или WSSE. | |
| validate_certs bool (добавлено в 1.9.2) |
| Если no, сертификаты SSL не будут проверены. Это должно быть установлено в no только для сайтов под личным контролем, использующих самозаверяемые сертификаты. До версии 1.9.2 код по умолчанию был no. |
Примечания
Примечание
- Зависимость от httplib2 была удалена в Ansible 2.1.
- Модуль возвращает все HTTP-заголовки в нижнем регистре.
- Для целевых систем Windows используйте модуль win_uri.
Примеры
- name: Check that you can connect (GET) to a page and it returns a status 200
uri:
url: http://www.example.com
# Check that a page returns a status 200 and fail if the word AWESOME is not
# in the page contents.
- uri:
url: http://www.example.com
return_content: yes
register: this
failed_when: "'AWESOME' not in this.content"
- name: Create a JIRA issue
uri:
url: https://your.jira.example.com/rest/api/2/issue/
method: POST
user: your_username
password: your_pass
body: "{{ lookup('file','issue.json') }}"
force_basic_auth: yes
status_code: 201
body_format: json
# Login to a form based webpage, then use the returned cookie to
# access the app in later tasks
- uri:
url: https://your.form.based.auth.example.com/index.php
method: POST
body_format: form-urlencoded
body:
name: your_username
password: your_password
enter: Sign in
status_code: 302
register: login
# Same, but now using a list of tuples
- uri:
url: https://your.form.based.auth.example.com/index.php
method: POST
body_format: form-urlencoded
body:
- [ name, your_username ]
- [ password, your_password ]
- [ enter, Sign in ]
status_code: 302
register: login
- uri:
url: https://your.form.based.auth.example.com/dashboard.php
method: GET
return_content: yes
headers:
Cookie: "{{ login.set_cookie }}"
- name: Queue build of a project in Jenkins
uri:
url: http://{{ jenkins.host }}/job/{{ jenkins.job }}/build?token={{ jenkins.token }}
method: GET
user: "{{ jenkins.user }}"
password: "{{ jenkins.password }}"
force_basic_auth: yes
status_code: 201
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие являются полями, уникальными для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| msg строка | всегда | HTTP сообщение из запроса Пример: OK (неизвестные байты) |
| redirected bool | всегда | Было ли перенаправление запроса |
| status целое число | всегда | HTTP-код состояния из запроса Пример: 200 |
| url строка | всегда | Фактический URL, используемый для запроса Пример: https://www.ansible.com/ |
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будут вноситься изменения в интерфейс, несовместимые с предыдущими версиями.
Техническое обслуживание
Этот модуль помечен как core, что означает, что он поддерживается Командой Ansible Core. Подробнее см. в разделе Техническое обслуживание и поддержка модулей.
Список других модулей, которые также поддерживаются Командой Ansible Core, см. здесь.
Поддержка
Дополнительную информацию о поддержке этого модуля Red Hat см. в этой статье базы знаний.
Автор
- Romeo Theriault (@romeotheriault)
Подсказка
Если вы заметили какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.6/modules/uri_module.html