uri - Взаимодействует с веб-службами
Обзор
- Взаимодействует с веб-службами HTTP и HTTPS и поддерживает механизмы аутентификации HTTP Digest, Basic и WSSE.
- Для целевых платформ Windows используйте модуль win_uri.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| body | Тело запроса/ответа HTTP к веб-службе. Если body_format установлено в 'json', будет использоваться уже отформатированная строка JSON или данные будут преобразованы в JSON. | |
| body_format (добавлено в 2.0) |
| Формат сериализации тела. При значении 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 |
| Следовать ли перенаправлениям 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 аутентификации при первоначальном запросе. |
| 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 для параметра body_format. | |
| method |
| Метод 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. |
Примечания
Примечание
- Зависимость от 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: 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 логическое значение | всегда | Было ли перенаправление запроса |
| status целое число | всегда | Код HTTP статуса из запроса Пример: 200 |
| url строка | всегда | Фактический URL, используемый для запроса Пример: https://www.ansible.com/ |
Статус
Этот модуль помечен как stableinterface, что означает, что поддерживающие этот модуль лица гарантируют, что не будут внесены изменения в интерфейс, несовместимые с предыдущими версиями.
Поддержка
Для получения дополнительной информации о поддержке этого модуля 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.5/modules/uri_module.html