Spec-Zone.ru › Ansible 2.7

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

- 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

Spec-Zone.ru

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