uri - Взаимодействие с веб-сервисами
Описание
- Взаимодействует с веб-сервисами HTTP и HTTPS и поддерживает механизмы аутентификации HTTP Digest, Basic и WSSE.
- Для целевых платформ Windows используйте модуль win_uri.
Параметры
| параметр | обязательно | по умолчанию | значения | комментарии |
|---|---|---|---|---|
| HEADER_ | нет | Любой параметр, начинающийся с "HEADER_", отправляется в запросе в качестве заголовка. Например, HEADER_Content-Type="application/json" отправит заголовок "Content-Type" вместе с запросом со значением "application/json". Этот параметр устарел, начиная с 2.1 и может быть удален в будущих версиях. Используйте параметр headers. | ||
| body | нет | Тело HTTP-запроса/ответа веб-сервису. Если body_format установлено в 'json', оно будет использовать уже отформатированную JSON-строку или преобразовывать структуру данных в JSON. | ||
| body_format (добавлен в 2.0)
| нет | raw |
| Формат сериализации тела. При установке в json кодирует аргумент body, если необходимо, и автоматически устанавливает заголовок Content-Type соответственно. Начиная с 2.3, можно переопределить заголовок `Content-Type`, если он установлен в json через параметр headers. |
| client_cert (добавлен в 2.4)
| нет | Файл цепочки сертификатов в формате PEM, используемый для аутентификации клиента SSL. Этот файл также может содержать ключ, и если ключ включен, параметр client_key не требуется | ||
| client_key (добавлен в 2.4)
| нет | Файл в формате PEM, содержащий ваш закрытый ключ, используемый для аутентификации клиента SSL. Если client_cert содержит и сертификат, и ключ, этот параметр не нужен. | ||
| creates | нет | имя файла, если оно уже существует, этот шаг не выполняется. | ||
| dest | нет | путь для загрузки файла (если нужно). Если dest — это директория, будет использовано имя файла на удаленном сервере. | ||
| follow_redirects | нет | safe |
| Следовать ли перенаправлениям URI. all будет следовать всем перенаправлениям. safe будет следовать только «безопасным» перенаправлениям, где «безопасный» означает, что клиент выполняет только GET или HEAD для URI, на который он перенаправляется. none не будет следовать никаким перенаправлениям. Обратите внимание, что yes и no значения поддерживаются для обратной совместимости, где yes эквивалентно all, а no эквивалентно safe. yes и no устарели и будут удалены в будущих версиях Ansible. |
| force_basic_auth | нет | нет |
| Библиотека, используемая модулем uri, отправляет информацию об аутентификации только тогда, когда веб-сервис отвечает на начальный запрос кодом состояния 401. Поскольку некоторые сервисы basic auth не отправляют 401 должным образом, попытки входа могут потерпеть неудачу. Этот параметр принудительно отправляет заголовок Basic authentication при первоначальном запросе. |
| headers (добавлен в 2.1)
| нет | Добавление пользовательских HTTP-заголовков к запросу в формате YAML-хэша. Начиная с 2.3, предоставление Content-Type здесь переопределит заголовок, сгенерированный при предоставлении json для параметра body_format. | ||
| method | нет | GET |
| HTTP-метод запроса или ответа. Он ДОЛЖЕН быть в верхнем регистре. |
| others | нет | все аргументы, принимаемые модулем file, также работают здесь | ||
| password | нет | пароль для использования модулем для аутентификации Digest, Basic или WSSE. | ||
| removes | нет | имя файла, если оно не существует, этот шаг не выполняется. | ||
| return_content | нет | нет |
| Возвращать ли тело ответа в качестве ключа "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 (добавлен в 1.9.2)
| нет | да |
| Если no, сертификаты SSL не будут проверены. Это следует устанавливать в no только для сайтов, находящихся под вашим контролем, использующих самоподписанные сертификаты. До версии 1.9.2 код по умолчанию был no. |
Примеры
- 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: webpage
- name: Fail if AWESOME is not in the page content
fail:
when: "'AWESOME' not in webpage.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: "name=your_username&password=your_password&enter=Sign%20in"
status_code: 302
headers:
Content-Type: "application/x-www-form-urlencoded"
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 | Было ли перенаправление запроса | всегда | логическое значение | False |
| status | HTTP-код состояния из запроса | всегда | целое число | 200 |
| url | Фактический URL, используемый для запроса | всегда | строка | https://www.ansible.com/ |
Примечания
Примечание
- Зависимость от httplib2 была удалена в Ansible 2.1.
- Модуль возвращает все HTTP-заголовки в нижнем регистре.
- Для целевых платформ Windows используйте модуль win_uri.
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют отсутствие несовместимых изменений интерфейса.
Информация о техническом обслуживании
Дополнительную информацию о поддержке этого модуля компанией Red Hat см. в knowledge base article<https://access.redhat.com/articles/rhel-top-support-policies>.
Для получения помощи в разработке модулей, если у вас есть желание, ознакомьтесь с Информацией о сообществе и участии, Тестирование Ansible и Разработка модулей.
© 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/uri_module.html