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 | Атрибуты, которые должны быть у результирующего файла или директории. Для получения поддерживаемых флагов см. страницу man для chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и при отображении lsattr. Оператор = предполагается по умолчанию, в противном случае операторы + или - необходимо включить в строку.псевдонимы: attr | |
| backup логическое значение добавлено в 2.1 |
| Создать резервную копию файла, включая информацию о времени, чтобы вы могли вернуть исходный файл, если вы неправильно его перезаписали. |
| checksum строка добавлено в 2.0 | Значение по умолчанию: "" | Если в этот параметр передана контрольная сумма, хэш-код файла назначения будет рассчитан после его загрузки, чтобы обеспечить целостность и подтвердить успешность передачи. Формат: <алгоритм>:<контрольная_сумма|url>, например checksum="sha256:D98291AC[...]B6DC7B97", checksum="sha256:http://example.com/path/sha256sum.txt" Если вы беспокоитесь о переносимости, алгоритм 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 на удалённом сервере. Если dest - директория, force не имеет эффекта.Если dest - директория, файл всегда будет загружен (независимо от опции force), но заменён только если содержимое изменилось. | |
| force логическое значение |
| Если yes и dest не является директорией, файл будет загружаться каждый раз и заменяться, если содержимое изменится. Если no, файл будет загружаться только если файл назначения не существует. В целом, должно использоваться только для небольших локальных файлов.До версии 0.6 этот модуль вел себя так, как будто yes было значением по умолчанию.псевдонимы: thirsty |
| force_basic_auth логическое значение добавлено в 2.0 |
| Вынудительная отправка заголовка аутентификации Basic при первоначальном запросе. httplib2, библиотека, используемая модулем uri, отправляет информацию об аутентификации только тогда, когда веб-сервис отвечает на первоначальный запрос с кодом состояния 401. Поскольку некоторые службы базовой аутентификации не отправляют должным образом 401, вход в систему будет провален. |
| group строка | Имя группы, которая должна владеть файлом/директорией, как это передаётся в chown. | |
| headers сырые данные добавлено в 2.0 | Добавление пользовательских 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 путь добавлено в 2.1 | Полный путь к временному файлу для загрузки. При выполнении на Ansible 2.5 или выше, путь по умолчанию - настройка remote_tmp Ansible. При выполнении на Ansible до версии 2.5, по умолчанию используется TMPDIR, TEMP или TMP переменные среды или платформно-специфическое значение. |
| unsafe_writes boolean added in 2.2 |
| Влияние на использование атомарных операций для предотвращения повреждения данных или несогласованного чтения из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Одним из примеров являются файлы, смонтированные с помощью Docker, которые не могут обновляться атомарно изнутри контейнера и могут записываться только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачно (однако он не принуждает Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
| url string / обязательно | URL HTTP, HTTPS или FTP в формате (http|https|ftp)://[пользователь[:пароль]]@хост.домен[:порт]/путь | |
| url_password string | Пароль для использования в HTTP-аутентификации по основанию. Если параметр url_username не указан, параметр url_password не будет использован.С версии 2.8 также можно использовать псевдоним «пароль» для этого параметра. псевдонимы: пароль | |
| url_username string | Имя пользователя для использования в HTTP-аутентификации по основанию. Этот параметр может использоваться без url_password для сайтов, которые допускают пустые пароли.С версии 2.8 также можно использовать псевдоним username для этого параметра.псевдонимы: имя пользователя | |
| use_proxy boolean |
| если no, прокси не будет использоваться, даже если он определен в переменной среды на целевых хостах. |
| validate_certs boolean |
| Если 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. [core]
Поддержка Red Hat
Дополнительную информацию о поддержке этого модуля компанией Red Hat можно найти в этой статье базы знаний Red Hat: Red Hat Knowledge Base article.
Авторы
- 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.8/modules/get_url_module.html