Spec-Zone.ru › Ansible 2.8

uri – Взаимодействие с веб-сервисами

  • Обзор
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Значения возврата
  • Статус

Обзор

  • Взаимодействует с веб-сервисами HTTP и HTTPS и поддерживает механизмы аутентификации HTTP Digest, Basic и WSSE.
  • Для целей Windows используйте модуль win_uri.

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
body
raw
Тело http запроса/ответа веб-сервису. Если body_format установлено в 'json', оно будет принимать уже отформатированную строку JSON или преобразовывать структуру данных в JSON. Если body_format установлено в 'form-urlencoded', оно будет преобразовывать словарь или список кортежей в строку 'application/x-www-form-urlencoded'. (Добавлено в v2.7)
body_format
строка
добавлено в 2.0
    Варианты:
  • form-urlencoded
  • json
  • raw ←
Формат сериализации тела. При установке в 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
строка
    Варианты:
  • all
  • none
  • safe ←
Указывает, следует ли модулю URI перенаправлению. all будет следовать всем перенаправлениям. safe будет следовать только «безопасным» перенаправлениям, где «безопасный» означает, что клиент выполняет только GET или HEAD для URI, на который он перенаправляется. none не будет следовать никаким перенаправлениям. Обратите внимание, что yes и no поддерживаются для обратной совместимости, где yes эквивалентно all, а no эквивалентно safe. yes и no устарели и будут удалены в будущих версиях Ansible.
force
логическое
    Варианты:
  • нет ←
  • да
Если yes не получать кэшированную копию.

псевдонимы: thirsty
force_basic_auth
логическое
    Варианты:
  • нет ←
  • да
Принудительно отправлять заголовок Basic аутентификации при первоначальном запросе.
Библиотека, используемая модулем uri, отправляет информацию об аутентификации только тогда, когда веб-сервис отвечает на первоначальный запрос статусом 401. Так как некоторые службы basic auth не отправляют 401 корректно, авторизация может не удаться.
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.
http_agent
строка
По умолчанию:
"ansible-httpget"
Заголовок для идентификации, обычно отображается в логах веб-сервера.
method
строка
По умолчанию:
"GET"
HTTP-метод запроса или ответа.
В более поздних версиях мы больше не ограничиваем метод на уровне модуля, но он по-прежнему должен быть допустимым методом, принимаемым сервисом, обрабатывающим запрос.
others
-
Все аргументы, принимаемые модулем file, также работают здесь
remote_src
логическое
добавлено в 2.7
    Варианты:
  • нет ←
  • да
Если no, модуль будет искать src на исходной/главной машине.
Если yes, модуль будет использовать путь src на удалённой/целевой машине.
removes
путь
Имя файла. Если файла не существует, этот шаг не будет выполнен.
return_content
логическое
    Варианты:
  • нет ←
  • да
Указывает, возвращать ли тело ответа как ключ "content" в результате словаря.
Независимо от этого параметра, если отчётный тип Content-type — "application/json", то JSON всегда загружается в ключ json в результатах словаря.
src
путь
добавлено в 2.7
Путь к файлу, который будет отправлен на удалённый сервер.
Не может использоваться с body.
status_code
список
По умолчанию:
[200]
Список допустимых числовых кодов HTTP-статуса, означающих успешность запроса.
timeout
целое число
По умолчанию:
30
Таймаут уровня сокета в секундах
unix_socket
-
добавлено в 2.8
Путь к сокету Unix доменной области, который нужно использовать для подключения
url
строка / обязательно
HTTP или HTTPS URL в формате (http|https)://host.domain[:port]/path
url_password
строка
Пароль, используемый модулем для Digest, Basic или WSSE аутентификации.

псевдонимы: пароль
url_username
строка
Имя пользователя, используемое модулем для Digest, Basic или WSSE аутентификации.

псевдонимы: пользователь
use_proxy
логическое
    Варианты:
  • нет
  • да ←
Если no, не использовать прокси, даже если прокси определён в переменной окружения на целевых хостах.
validate_certs
логическое
    Варианты:
  • нет
  • да ←
Если no, сертификаты SSL не будут проверены.
Это следует использовать только на сайтах под собственным контролем, использующих самозаверяемые сертификаты.
До версии 1.9.2 код по умолчанию устанавливал no.

Примечания

Примечание

  • Зависимость от httplib2 была удалена в Ansible 2.1.
  • Модуль возвращает все HTTP-заголовки в нижнем регистре.
  • Для целевых систем Windows используйте модуль win_uri вместо этого.

См. также

См. также

get_url – Загрузка файлов из HTTP, HTTPS или FTP в узел
Официальная документация по модулю get_url.
win_uri – Взаимодействие с веб-сервисами
Официальная документация по модулю win_uri.

Примеры

- name: Check that you can connect (GET) to a page and it returns a status 200
  uri:
    url: http://www.example.com

- name: 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/
    user: your_username
    password: your_pass
    method: POST
    body: "{{ lookup('file','issue.json') }}"
    force_basic_auth: yes
    status_code: 201
    body_format: json

- name: 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

- name: Login to a form based webpage 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

- name: Connect to website using a previously stored cookie
  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 }}
    user: "{{ jenkins.user }}"
    password: "{{ jenkins.password }}"
    method: GET
    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: yes

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие — уникальные для данного модуля:

Ключ Возвращаемое значение Описание
elapsed
целое число
при успехе
Количество секунд, затраченное на загрузку

Пример:
23
msg
строка
всегда
HTTP-сообщение из запроса

Пример:
OK (неизвестные байты)
redirected
логическое значение
при успехе
Было ли перенаправление запроса

status
целое число
всегда
HTTP-код состояния из запроса

Пример:
200
url
строка
всегда
Фактический URL, используемый для запроса

Пример:
https://www.ansible.com/


Статус

  • Данный модуль гарантированно не будет иметь обратной несовместимости в будущем. [stableinterface]
  • Этот модуль поддерживается Командой разработчиков Ansible. [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.8/modules/uri_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API