Spec-Zone.ru › Ansible 2.6

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)
    Варианты:
  • 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_basic_auth
bool
    Варианты:
  • no ←
  • yes
Библиотека, используемая модулем 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
    Варианты:
  • GET ←
  • POST
  • PUT
  • HEAD
  • DELETE
  • OPTIONS
  • PATCH
  • TRACE
  • CONNECT
  • REFRESH
HTTP-метод запроса или ответа. ОН ДОЛЖЕН быть ЗАГЛАВНЫМ.
others
Все аргументы, принимаемые модулем file, также работают здесь
password
Пароль для использования модулем для аутентификации Digest, Basic или WSSE.
removes
Имя файла. Если файл не существует, этот шаг не будет выполнен.
return_content
bool
    Варианты:
  • no ←
  • yes
Возвращать ли тело ответа в качестве ключа "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
  • yes ←
Если 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)
END_OF_DOCUMENT_MARKER

Подсказка

Если вы заметили какие-либо проблемы в этом руководстве, вы можете отредактировать этот документ, чтобы улучшить его.

© 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

Spec-Zone.ru

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