get_url – Загрузка файлов из HTTP, HTTPS или FTP на узел
Описание
- Загрузка файлов из HTTP, HTTPS или FTP на удаленный сервер. Удаленный сервер должен иметь прямой доступ к удаленному ресурсу.
- По умолчанию, если на целевом хосте установлена переменная среды
<protocol>_proxy, запросы будут отправляться через этот прокси-сервер. Это поведение можно переопределить, установив переменную для этой задачи (см. установку среды) или с помощью параметра use_proxy. - Перенаправления HTTP могут перенаправлять с HTTP на HTTPS, поэтому необходимо убедиться, что ваша среда прокси для обоих протоколов корректна.
- Начиная с Ansible 2.4 при выполнении с
--check, будет выполнен запрос HEAD для проверки URL, но весь файл не будет загружен и не будет проверен на соответствие хэшам. - Для целевых систем Windows используйте модуль win_get_url вместо этого.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка | Атрибуты, которые должны быть у результирующего файла или каталога. Чтобы получить поддерживаемые флаги, см. страницу man для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в выводе lsattr. Оператор = предполагается по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| backup логическое значение |
| Создать резервную копию файла, включая информацию о времени, чтобы вы могли восстановить исходный файл, если его неправильно перезаписали. |
| checksum строка | Значение по умолчанию: "" | Если в этот параметр передается контрольная сумма, то после загрузки целевого файла будет вычислено значение дайджеста для проверки его целостности и подтверждения успешного завершения передачи. Формат: <алгоритм>:<контрольная_сумма|url>, например checksum="sha256:D98291AC[...]B6DC7B97", checksum="sha256:http://example.com/path/sha256sum.txt" Если вы беспокоитесь о переносимости, то алгоритм sha1 доступен на всех платформах и версиях Python. Библиотека hashlib сторонних разработчиков может быть установлена для доступа к дополнительным алгоритмам. Кроме того, если в этот параметр передается контрольная сумма, и файл существует в dest месте, то будет вычислена контрольная сумма destination_checksum, и если контрольная сумма совпадает с destination_checksum, то загрузка файла будет пропущена (если force равно true). Если контрольная сумма не равна destination_checksum, то целевой файл удаляется. |
| client_cert путь добавлен в 2.4 | Файл цепочки сертификатов в формате PEM, который используется для проверки подлинности клиента по протоколу SSL. Этот файл также может содержать ключ, и если ключ включён, то client_key не требуется. | |
| client_key путь добавлен в 2.4 | Файл в формате PEM, содержащий ваш закрытый ключ, используемый для проверки подлинности клиента по протоколу SSL. Если client_cert содержит как сертификат, так и ключ, этот параметр не требуется. | |
| dest путь / обязательно | Абсолютный путь к месту сохранения загруженного файла. Если dest является каталогом, то используется имя файла, предоставленное сервером, или, если оно не предоставлено, имя файла по умолчанию из URL на удалённом сервере. Если dest это каталог, то force не влияет.Если dest это каталог, то файл всегда будет загружен (независимо от параметра force), но будет заменён только если его содержимое изменилось. | |
| force логическое значение |
| Если yes и dest не является каталогом, то файл будет загружен каждый раз и заменён, если содержимое изменилось. Если no, то файл будет загружен только если он не существует в месте назначения. В целом, следует использовать yes только для небольших локальных файлов.До версии 0.6 модуль вел себя так, как если бы yes был значением по умолчанию.Псевдоним thirsty устарел и будет удалён в версии 2.13.псевдонимы: thirsty |
| force_basic_auth логическое значение |
| Принудительно отправлять заголовок аутентификации Basic при первом запросе. httplib2, библиотека, используемая модулем uri, отправляет данные аутентификации только тогда, когда веб-сервис отвечает на начальный запрос статусом 401. Поскольку некоторые сервисы аутентификации Basic не отправляют должным образом 401, попытки входа могут завершиться неудачно. |
| group строка | Имя группы, которая должна владеть файлом/каталогом, как это передается в chown. | |
| headers сырые данные | Добавить пользовательские HTTP-заголовки к запросу в формате хеш/словаря. Формат хеш/словарь был добавлен в Ansible 2.6. Предыдущие версии использовали формат строки "key:value,key:value".Формат строки "key:value,key:value" устарел и будет удален в версии 2.10. | |
| http_agent строка | Значение по умолчанию: "ansible-httpget" | Заголовок, идентифицирующий агента, обычно отображается в журналах веб-сервера. |
| mode строка | Разрешения, которые должен иметь результирующий файл или каталог. Для тех, кто привык к /usr/bin/chmod, помните, что режимы на самом деле являются восьмеричными числами. Вы должны либо добавить ведущую нуль, чтобы парсер YAML Ansible понимал, что это восьмеричное число (например, 0644 или 01777), или заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и сам выполнил преобразование из строки в число.Передача Ansible числа без соблюдения одного из этих правил приведёт к десятичному числу, что приведёт к непредвиденным результатам. Начиная с Ansible 1.8, режим может быть указан в символическом формате (например, u+rwx или u=rw,g=r,o=r). | |
| owner строка | Имя пользователя, который должен владеть файлом/каталогом, как это передается в chown. | |
| selevel строка | Значение по умолчанию: "s0" | Часть уровня контекста файла SELinux. Это атрибут MLS/MCS, иногда известный как range. Если установлено _default, то будет использована часть политики level, если она доступна. |
| serole строка | Часть роли контекста файла SELinux. Если установлено _default, то будет использована часть политики role, если она доступна. | |
| setype строка | Часть типа контекста файла SELinux. Если установлено _default, то будет использована часть политики type, если она доступна. | |
| seuser строка | Часть пользователя контекста файла SELinux. По умолчанию используется политика system, где это применимо.Если установлено _default, то будет использована часть политики user, если она доступна. | |
| sha256sum - | Значение по умолчанию: "" | Если в этот параметр передается контрольная сумма SHA-256, то после загрузки целевого файла будет вычислено значение дайджеста для проверки его целостности и подтверждения успешного завершения передачи. Этот параметр устарел. Используйте checksum вместо него. |
| timeout целое число | Значение по умолчанию: 10 | Таймаут в секундах для запроса URL. |
| tmp_dest путь | Абсолютный путь к месту сохранения временного файла. При выполнении на Ansible 2.5 или выше, путь по умолчанию задается настройкой remote_tmp Ansible При выполнении на Ansible до версии 2.5, он по умолчанию использует TMPDIR, TEMP или TMP переменные среды или значение, специфичное для платформы. | |
| unsafe_writes логическое значение |
| Влияние на использование атомарных операций для предотвращения повреждения данных или несогласованного чтения из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто неисправны, что препятствует этому. Одним из примеров являются файлы, смонтированные с помощью docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов при неудаче атомарных операций (однако он не принуждает Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
| url строка / обязательно | HTTP, HTTPS или FTP URL в формате (http|https|ftp)://[пользователь[:пароль]]@хост.домен[:порт]/путь |
| url_password строка | Пароль для использования в аутентификации HTTP Basic. Если параметр url_username не указан, параметр url_password не будет использоваться.С версии 2.8 вы также можете использовать псевдоним «password» для этого параметра. Псевдонимы: password | |
| url_username строка | Имя пользователя для использования в аутентификации HTTP Basic. Этот параметр может быть использован без url_password для сайтов, разрешающих пустые пароли.С версии 2.8 вы также можете использовать псевдоним username для этого параметра.Псевдонимы: username | |
| use_proxy булево |
| Если no, прокси не будет использоваться, даже если он определён в переменной окружения на целевых хостах. |
| validate_certs булево |
| Если no, сертификаты SSL не будут проверены.Это следует использовать только на сайтах, контролируемых вами лично, использующих самозаверенные сертификаты. |
Примечания
Примечание
- Для целевых систем Windows используйте модуль win_get_url вместо этого.
См. также
См. также
- uri — Взаимодействие с веб-сервисами
- Официальная документация по модулю uri.
- win_get_url — Загрузка файла из HTTP, HTTPS или FTP на узел
- Официальная документация по модулю win_get_url.
Примеры
- name: Download foo.conf
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
mode: '0440'
- name: Download file and force basic auth
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
force_basic_auth: yes
- name: Download file with custom HTTP headers
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
headers:
key1: one
key2: two
- name: Download file with check (sha256)
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
checksum: sha256:b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c
- name: Download file with check (md5)
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
checksum: md5:66dffb5228a211e61d6d7ef4a86f5758
- name: Download file with checksum url (sha256)
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
checksum: sha256:http://example.com/path/sha256sum.txt
- name: Download file from a file path
get_url:
url: file:///tmp/afile.txt
dest: /tmp/afilecopy.txt
- name: < Fetch file that requires authentication.
username/password only available since 2.8, in older versions you need to use url_username/url_password
get_url:
url: http://example.com/path/file.conf
dest: /etc/foo.conf
username: bar
password: '{{ mysecret }}'
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для данного модуля:
| Ключ | Возвращаемое | Описание |
|---|---|---|
| backup_file строка | изменён и если backup=да | Имя созданного резервного файла после загрузки Пример: /path/to/file.txt.2015-02-12@22:09~ |
| checksum_dest строка | успех | sha1 контрольная сумма файла после копирования Пример: 6e642bb8dd5c2e027bf21dd923337cbb4214f827 |
| checksum_src строка | успех | sha1 контрольная сумма файла Пример: 6e642bb8dd5c2e027bf21dd923337cbb4214f827 |
| dest строка | успех | Целевой файл/путь Пример: /path/to/file.txt |
| elapsed целое число | всегда | Количество секунд, затраченное на выполнение загрузки Пример: 23 |
| gid целое число | успех | Идентификатор группы файла Пример: 100 |
| group строка | успех | Группа файла Пример: httpd |
| md5sum строка | при поддержке | md5 контрольная сумма файла после загрузки Пример: 2a5aeecc61dc98c4d780b14b330e3282 |
| mode строка | успех | Права доступа к целевому объекту Пример: 0644 |
| msg строка | всегда | HTTP сообщение от запроса Пример: OK (неизвестные байты) |
| owner строка | успех | Владелец файла Пример: httpd |
| secontext строка | успех | SELinux контекст безопасности файла Пример: unconfined_u:object_r:user_tmp_t:s0 |
| size целое число | успех | Размер целевого объекта Пример: 1220 |
| src строка | всегда | Исходный файл, используемый после загрузки Пример: /tmp/tmpAdFLdV |
| state строка | успех | Состояние целевого объекта Пример: файл |
| status_code целое число | всегда | HTTP код состояния запроса Пример: 200 |
| uid целое число | успех | Идентификатор владельца файла после выполнения Пример: 100 |
| url строка | всегда | Фактический URL, используемый для запроса Пример: https://www.ansible.com/ |
Статус
- В этом модуле гарантированы изменения интерфейса с обратной совместимостью в будущем. [stableinterface]
- Этот модуль поддерживается основной командой Ansible. [core]
Поддержка Red Hat
Дополнительную информацию о поддержке этого модуля Red Hat можно найти в этой статье базы знаний Red Hat.
Авторы
- Jan-Piet Mens (@jpmens)
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/get_url_module.html