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 - добавлен в 2.3 | Атрибуты, которые должен иметь файл или директория. Чтобы получить поддерживаемые флаги, обратитесь к странице руководства для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении командой lsattr. = оператор предполагается по умолчанию, в противном случае + или - операторы должны быть включены в строку.псевдонимы: attr | |
| backup boolean добавлен в 2.1 |
| Создать резервную копию файла, включая информацию о времени создания, чтобы вы могли восстановить исходный файл, если его неправильно перезаписали. |
| checksum - добавлен в 2.0 | Значение по умолчанию: "" | Если в этот параметр передается контрольная сумма, то после загрузки целевого файла будет рассчитан хэш-код, чтобы обеспечить целостность и подтвердить успешность передачи. Формат: <алгоритм>:<контрольная_сумма|url>, например, checksum="sha256:D98291AC[...]B6DC7B97", checksum="sha256:http://example.com/path/sha256sum.txt" Если вы беспокоитесь о портативности, то алгоритм sha1 доступен на всех платформах и версиях Python. Библиотека hashlib сторонних разработчиков может быть установлена для доступа к дополнительным алгоритмам. Кроме того, если в этот параметр передается контрольная сумма, и файл существует в dest месте, то будет рассчитана контрольная сумма force, и если контрольная сумма совпадёт с force, то загрузка файла будет пропущена (если force не равно true). |
| client_cert - добавлен в 2.4 | Файл цепочки сертификатов в формате PEM, который будет использоваться для аутентификации клиента SSL. Этот файл также может содержать ключ, и если ключ включен, client_key не требуется. | |
| client_key - добавлен в 2.4 | Файл в формате PEM, содержащий ваш закрытый ключ, который будет использоваться для аутентификации клиента SSL. Если client_cert содержит как сертификат, так и ключ, этот параметр не требуется. | |
| dest - / обязательно | Абсолютный путь к месту загрузки файла. Если dest является каталогом, то будет использоваться имя файла, предоставленное сервером, или, если оно не предоставлено, имя файла по умолчанию из URL на удаленном сервере. Если это каталог, force не имеет значения.Если dest является каталогом, файл всегда будет загружен (независимо от опции force), но заменён только в случае изменения содержимого. | |
| force boolean |
| Если yes и dest не является каталогом, файл будет загружаться каждый раз и заменяться, если содержимое изменится. Если no, файл будет загружаться только если он не существует в назначенном месте. В общем случае следует использовать yes только для небольших локальных файлов.До версии 0.6, этот модуль вел себя так, как если бы yes был по умолчанию.псевдонимы: thirsty |
| force_basic_auth boolean добавлен в 2.0 |
| httplib2, библиотека, используемая модулем uri, отправляет информацию об аутентификации только тогда, когда веб-сервис отвечает на первоначальный запрос статусом 401. Поскольку некоторые службы basic auth не отправляют должным образом 401, логин может завершиться неудачей. Этот параметр принудительно отправляет заголовок Basic авторизации при первоначальном запросе. |
| group - | Имя группы, которой должен принадлежать файл/каталог, как в команде chown. | |
| headers - добавлен в 2.0 | Добавление настраиваемых HTTP-заголовков к запросу в формате hash/dict. Формат hash/dict был добавлен в версии 2.6. Предыдущие версии использовали формат строки "key:value,key:value". Формат строки "key:value,key:value" устарел и будет удален в версии 2.10. | |
| mode - | Режим файла или каталога. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую цифру 0, чтобы Ansible's YAML-парсер понимал, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '1777') чтобы Ansible получил строку и смог выполнить преобразование строки в число. Передача Ansible числа без выполнения одного из этих правил приведёт к использованию десятичного числа, что приведёт к непредсказуемым результатам. Начиная с версии 1.8, режим может быть задан в символьной форме (например, u+rwx или u=rw,g=r,o=r). | |
| others - | все аргументы, принимаемые модулем file, также работают здесь | |
| owner - | Имя пользователя, которому должен принадлежать файл/каталог, как в команде chown. | |
| selevel - | Значение по умолчанию: "s0" | Часть контекста файла SELinux, относящаяся к уровню. Это атрибут MLS/MCS, иногда известный как range. _default функция работает аналогично параметру seuser. |
| serole - | Часть контекста файла SELinux, относящаяся к роли. _default функция работает аналогично параметру seuser. | |
| setype - | Часть контекста файла SELinux, относящаяся к типу. _default функция работает аналогично параметру seuser. | |
| seuser - | Часть контекста файла SELinux, относящаяся к пользователю. По умолчанию используется системная политика, если применимо. Если установлено значение _default, будет использоваться часть политики user, если она доступна. | |
| sha256sum - добавлен в 1.3 | Значение по умолчанию: "" | Если в этот параметр передается контрольная сумма SHA-256, то после загрузки целевого файла будет рассчитан хэш-код, чтобы обеспечить целостность и подтвердить успешность передачи. Этот параметр устарел. Используйте checksum вместо него. |
| timeout - добавлен в 1.8 | Значение по умолчанию: 10 | Таймаут в секундах для запроса URL. |
| tmp_dest - добавлен в 2.1 | Абсолютный путь к временной папке, куда загружается временный файл. При выполнении на Ansible 2.5 или выше путь по умолчанию — значение remote_tmp в Ansible. При выполнении на Ansible до версии 2.5 по умолчанию используется значение TMPDIR, TEMP или TMP переменных окружения, или платформа-специфичное значение. | |
| unsafe_writes boolean добавлен в 2.2 |
| По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Пример — файлы, смонтированные с помощью Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только неатомарным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачно (хотя он не принуждает Ansible к небезопасным операциям записи). ВАЖНО! Небезопасные операции записи подвержены конкурентным состояниям и могут привести к повреждению данных. |
| url - / обязательно | URL HTTP, HTTPS или FTP в формате (http|https|ftp)://[пользователь[:пароль]]@хост.домен[:порт]/путь |
| url_password - added in 1.6 | Пароль для использования в HTTP-аутентификации по схеме basic. Если параметр url_username не указан, параметр url_password не будет использоваться. | |
| url_username - added in 1.6 | Имя пользователя для использования в HTTP-аутентификации по схеме basic. Этот параметр может быть использован без url_password, для сайтов, допускающих пустые пароли. | |
| use_proxy boolean |
| Если no, прокси не будет использоваться, даже если он определён в переменной среды на целевых хостах. |
| validate_certs boolean |
| Если no, сертификаты SSL не будут проверены. Это следует использовать только на сайтах, находящихся под личным контролем и использующих самоподписанные сертификаты. |
Примечания
Примечание
- Для целевых систем Windows используйте модуль 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
Возвращаемые значения
Общие возвращаемые значения документированы здесь, ниже перечислены поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| backup_file строка | изменённое, если backup=yes | имя созданного файла резервной копии после загрузки Пример: /path/to/file.txt.2015-02-12@22:09~ |
| checksum_dest строка | успешно | sha1 контрольная сумма файла после копирования Пример: 6e642bb8dd5c2e027bf21dd923337cbb4214f827 |
| checksum_src строка | успешно | sha1 контрольная сумма файла Пример: 6e642bb8dd5c2e027bf21dd923337cbb4214f827 |
| dest строка | успешно | путь/файл назначения Пример: /path/to/file.txt |
| 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. [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.7/modules/get_url_module.html