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'. (Добавлено в v2.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 boolean |
| Библиотека, используемая модулем uri, отправляет информацию об аутентификации только тогда, когда веб-сервис отвечает на начальный запрос статусом 401. Поскольку некоторые сервисы Basic аутентификации не правильно отправляют 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. | |
| remote_src boolean добавлено в 2.7 |
| Если no, модуль будет искать src на исходной/главной машине, если yes, модуль будет использовать путь src на удалённой/целевой машине. |
| removes - | Имя файла. Если файл не существует, этот шаг не будет выполнен. | |
| return_content boolean |
| Возвращать ли тело ответа в качестве ключа "content" в результатах словаря. Если тип Content-type, возвращённый в ответе, "application/json", JSON дополнительно загружается в ключ json в результатах словаря. |
| src - добавлено в 2.7 | Путь к файлу, который будет отправлен на удалённый сервер. Не может использоваться с body. | |
| status_code - | По умолчанию: 200 | Список допустимых числовых HTTP-кодов состояния, указывающих на успешность запроса. |
| timeout - | По умолчанию: 30 | Таймаут сокета в секундах |
| url - / обязательно | HTTP или HTTPS URL в формате (http|https)://host.domain[:port]/path | |
| user - | Имя пользователя для использования модулем для аутентификации Digest, Basic или WSSE. | |
| validate_certs boolean добавлено в 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
- name: POST from contents of local file
uri:
url: "https://httpbin.org/post"
method: POST
src: file.json
- name: POST from contents of remote file
uri:
url: "https://httpbin.org/post"
method: POST
src: /path/to/my/file.json
remote_src: true
Значения возврата
Общие значения возврата документированы здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| msg строка | всегда | HTTP-сообщение из запроса Пример: OK (неизвестные байты) |
| redirected булево | всегда | Было ли перенаправление запроса |
| status целое число | всегда | HTTP-код состояния из запроса Пример: 200 |
| url строка | всегда | Фактический URL, используемый для запроса Пример: https://www.ansible.com/ |
Статус
- Данный модуль гарантированно не будет содержать несовместимых изменений интерфейса в будущем. [stableinterface]
- Этот модуль поддерживается командой Ansible Core. [core]
Поддержка Red Hat
Дополнительную информацию о поддержке этого модуля компанией Red Hat можно найти в этой статье базы знаний 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.7/modules/uri_module.html