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)
| нет | None | Атрибуты файла или каталога. Для получения поддерживаемых флагов обратитесь к справке man для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в выводе lsattr. псевдонимы: attr | |
| backup (добавлен в 2.1)
| нет | нет |
| Создает резервную копию файла, включая информацию о времени создания, чтобы восстановить исходный файл в случае ошибки. |
| checksum (добавлен в 2.0)
| нет | Если в параметр checksum передаётся значение, то после загрузки файла будет вычислена контрольная сумма назначения для проверки целостности и подтверждения успешного завершения передачи. Формат: <алгоритм>:<контрольная_сумма>, например checksum="sha256:D98291AC[...]B6DC7B97". Для обеспечения портативности рекомендуется использовать алгоритм sha1, который доступен на всех платформах и версиях Python. Для доступа к дополнительным алгоритмам можно установить стороннюю библиотеку hashlib. Если в параметр checksum передается значение и файл существует по адресу dest, будет вычислена контрольная сумма назначения. Если контрольная сумма равна контрольной сумме назначения, загрузка файла будет пропущена (если 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 | нет | нет |
| Если yes и dest не является каталогом, файл будет загружаться каждый раз и заменяться, если содержимое изменится. Если no, файл будет загружаться только в случае, если файла назначения не существует. В общем случае следует использовать yes только для небольших локальных файлов.До версии 0.6 этот модуль вел себя так, как будто yes было значением по умолчанию.псевдонимы: thirsty |
| force_basic_auth (добавлен в 2.0)
| нет | нет |
| Библиотека httplib2, используемая модулем uri, отправляет данные аутентификации только тогда, когда веб-сервис отвечает на начальный запрос статусом 401. Поскольку некоторые сервисы базовой аутентификации не отправляют 401, логины могут не работать. Этот параметр заставляет отправлять заголовок Basic аутентификации при первом запросе. |
| group | нет | Имя группы, которая должна владеть файлом/каталогом (как в команде chown). | ||
| headers (добавлен в 2.0)
| нет | Добавление пользовательских HTTP-заголовков в формате "ключ:значение,ключ:значение". | ||
| mode | нет | Режим файла или каталога. Для тех, кто знаком с /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами (например, 0644). Опускание ведущего нуля может привести к непредвиденным результатам. Начиная с версии 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)
| нет | Абсолютный путь, куда загружается временный файл. По умолчанию используется TMPDIR, TEMP или TMP переменные среды или платформ-зависимое значение. | ||
| unsafe_writes (добавлен в 2.2)
| нет |
| Обычно этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов. Иногда системы настроены или просто сломаны таким образом, что это не возможно. Например, в контейнерах Docker, файлы не могут обновляться атомарно и могут обновляться только небезопасным способом. Этот булевый параметр позволяет Ansible переходить к небезопасным методам обновления файлов в тех случаях, когда нет другого выбора. Имейте в виду, что это подвержено гонкам и может привести к повреждению данных. | |
| url | да | URL HTTP, HTTPS или FTP в форме (http|https|ftp)://[пользователь[:пароль]]@хост.домен[:порт]/путь | ||
| url_password (добавлен в 1.6)
| нет | Пароль для использования в HTTP-аутентификации. Если параметр url_username не указан, параметр url_password не будет использоваться. | ||
| url_username (добавлен в 1.6)
| нет | Имя пользователя для использования в HTTP-аутентификации. Этот параметр можно использовать без url_password для сайтов, допускающих пустые пароли. | ||
| use_proxy | нет | да |
| Если no, прокси-сервер не будет использоваться, даже если он определён в переменной среды на целевых узлах. |
| validate_certs | нет | да |
| Если no, SSL-сертификаты не будут проверены. Это должно использоваться только на сайтах, контролируемых пользователем, использующих самозаверенные сертификаты. |
Примеры
- 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 | CRC32 контрольная сумма файла после копирования | успешно | строка | 6e642bb8dd5c2e027bf21dd923337cbb4214f827 |
| checksum_src | CRC32 контрольная сумма файла | успешно | строка | 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/ |
Примечания
Примечание
- Для целевых объектов Windows используйте модуль win_get_url вместо этого.
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики данного модуля гарантируют отсутствие несовместимых изменений интерфейса.
Информация о поддержке
Дополнительную информацию о поддержке этого модуля компанией Red Hat см. в knowledge base article<https://access.redhat.com/articles/rhel-top-support-policies>
Для получения помощи в разработке модулей, если вам это интересно, обратитесь к Информация о сообществе и участие в разработке, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/get_url_module.html