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 bool (добавлен в 2.1) |
| Создать резервную копию файла, включая информацию о временной метке, чтобы вы могли восстановить исходный файл, если неправильно его перезаписали. |
| checksum (добавлен в 2.0) | Значение по умолчанию: "" | Если в этот параметр передается контрольная сумма, то хэш-значение целевого файла будет рассчитан после его загрузки, чтобы гарантировать целостность и подтвердить успешность передачи. Формат: <алгоритм>:<контрольная_сумма>, например checksum="sha256:D98291AC[...]B6DC7B97" Если вы беспокоитесь о портативности, то алгоритм sha1 доступен на всех платформах и версиях Python. Библиотека hashlib сторонних разработчиков может быть установлена для доступа к дополнительным алгоритмам. Кроме того, если в этот параметр передается контрольная сумма, а файл существует по адресу dest, то будет рассчитана destination_checksum, и если контрольная сумма равна destination_checksum, то загрузка файла будет пропущена (если 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 bool |
| Если yes и dest не является каталогом, файл будет загружаться каждый раз и заменяться, если содержимое изменилось. Если no, файл будет загружен только если он не существует в месте назначения. В общем случае, следует использовать yes только для небольших локальных файлов.До версии 0.6 этот модуль вел себя так, как будто yes был значением по умолчанию.псевдонимы: thirsty |
| force_basic_auth bool (добавлен в 2.0) |
| httplib2, библиотека, используемая модулем uri, отправляет информацию об аутентификации только тогда, когда веб-сервис отвечает на начальный запрос кодом состояния 401. Поскольку некоторые сервисы аутентификации по принципу «basic auth» не отправляют код 401 должным образом, попытки входа могут завершиться неудачей. Этот параметр заставляет отправлять заголовок Basic аутентификации при первоначальном запросе. |
| group | Имя группы, которая должна владеть файлом/каталогом, как если бы оно было передано в chown. | |
| headers (добавлен в 2.0) | Добавить пользовательские HTTP-заголовки в запрос в формате словаря/списка. Формат словаря/списка был добавлен в 2.6. Предыдущие версии использовали формат строки "key:value,key:value". Формат строки "key:value,key:value" устарел и будет удалён в версии 2.10. | |
| mode | Режим, который должен иметь файл или каталог. Для тех, кто привык к /usr/bin/chmod, помните, что режимы на самом деле являются восьмеричными числами. Вы должны либо указать ведущий ноль, чтобы парсер YAML Ansible знал, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '0644'), чтобы 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 bool (добавлен в 2.2) |
| Обычно этот модуль использует атомарные операции, чтобы предотвратить повреждение данных или несогласованные чтения из целевых файлов. Иногда системы настроены или просто имеют ошибки, которые препятствуют этому. Одним из примеров являются файлы, смонтированные в Docker; они не могут быть обновлены атомарно и могут обновляться только неатомарно. Этот булевый параметр позволяет Ansible перейти к небезопасным методам обновления файлов в тех случаях, когда у вас нет другого выбора. Имейте в виду, что это подвержено гонкам и может привести к повреждению данных. |
| url обязательно | URL-адрес HTTP, HTTPS или FTP в формате (http|https|ftp)://[пользователь[:пароль]]@хост.домен[:порт]/путь | |
| url_password (добавлен в 1.6) | Пароль для использования в аутентификации HTTP по принципу «basic auth». Если параметр url_username не указан, параметр url_password не будет использоваться. | |
| url_username (добавлен в 1.6) | Имя пользователя для использования в аутентификации HTTP по принципу «basic auth». Этот параметр может быть использован без url_password, для сайтов, допускающих пустые пароли. | |
| use_proxy bool |
| Если no, прокси не будет использоваться, даже если он определён в переменной окружения на целевых хостах. |
| validate_certs bool |
| Если 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: 'key:value,key:value'
- 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 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 целое число | всегда | HTTP код состояния из запроса Пример: 200 |
| uid целое число | успешно | идентификатор владельца файла после выполнения Пример: 100 |
| url строка | всегда | фактический URL, используемый для запроса Пример: https://www.ansible.com/ |
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будут вноситься обратные несовместимые изменения в интерфейс.
Обслуживание
Этот модуль помечен как core, что означает, что он поддерживается командой Ansible Core. Дополнительную информацию см. в разделе Поддержка и обслуживание модулей.
Список других модулей, поддерживаемых командой Ansible Core, см. здесь.
Поддержка
Дополнительную информацию о поддержке этого модуля компанией 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.6/modules/get_url_module.html