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 | Атрибуты, которые должен иметь файл или директория. Для получения поддерживаемых флагов обратитесь к странице справки chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в выводе lsattr. Псевдонимы: attr |
| backup (добавлено в 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 на удаленном сервере. Если dest является директорией, параметр force не имеет эффекта.Если dest является директорией, файл всегда будет загружен (независимо от параметра force), но заменён только в случае изменения содержимого. | |
| force |
| Если yes и dest не является директорией, файл будет загружаться каждый раз и заменяться, если содержимое изменится. Если no, файл будет загружаться только если он не существует в целевой директории. В целом, этот параметр следует использовать только для небольших локальных файлов.До версии 0.6, этот модуль работал как если бы yes был значением по умолчанию.Псевдонимы: thirsty |
| force_basic_auth (добавлено в 2.0) |
| Библиотека httplib2, используемая модулем uri, отправляет информацию об аутентификации только когда веб-сервис отвечает на начальный запрос кодом статуса 401. Так как некоторые сервисы с базовой аутентификацией не отправляют 401, авторизация может не удаться. Этот параметр принудительно отправляет заголовок Basic аутентификации при начальном запросе. |
| group | Значение по умолчанию: None | Имя группы, которая должна владеть файлом/директорией, как в команде chown. |
| headers (добавлено в 2.0) | Добавить пользовательские HTTP-заголовки в формате "ключ:значение,ключ:значение". | |
| mode | Значение по умолчанию: None | Режим, который должен иметь файл или директория. Для тех, кто привык к команде /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами (например, 0644 или 01777). Опускание ведущего нуля может привести к непредсказуемым результатам. С версии 1.8, режим может быть задан в символической форме (например, u+rwx или u=rw,g=r,o=r). |
| others | все аргументы, принимаемые модулем file, также работают здесь | |
| owner | Значение по умолчанию: None | Имя пользователя, который должен владеть файлом/директорией, как в команде chown. |
| selevel | Значение по умолчанию: s0 | Уровень SELinux контекста файла. Это атрибут MLS/MCS, иногда известный как range. Функциональность _default работает также, как и для seuser. |
| serole | Значение по умолчанию: None | Роль в контексте файла SELinux, функциональность _default работает также, как и для seuser. |
| setype | Значение по умолчанию: None | Тип в контексте файла SELinux, функциональность _default работает также, как и для seuser. |
| seuser | Значение по умолчанию: None | Пользователь в контексте файла 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 (добавлено в 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 не будут проверены. Это следует использовать только на сайтах, контролируемых лично, с самозаверяемыми сертификатами. |
Примечания
Примечание
- Для целевых систем 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=да | имя созданного файла резервной копии после загрузки Пример: /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, что означает, что разработчики данного модуля гарантируют, что не будут вноситься несовместимые с предыдущими версиями изменения интерфейса.
Поддержка
Для получения дополнительной информации о поддержке этого модуля 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.5/modules/get_url_module.html