ansible.builtin.get_url – Загрузка файлов из HTTP, HTTPS или FTP на узел
Примечание
Этот модуль является частью ansible-base и включён во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля get_url, даже не указывая ключевое слово collections:. Несмотря на это, мы рекомендуем использовать полное имя класса (FQCN) для удобной ссылки на документацию по модулю и для избежания конфликтов с другими коллекциями, которые могут иметь то же имя модуля.
Введено в версии 0.6: of ansible.builtin
Описание
- Загружает файлы из HTTP, HTTPS или FTP на удалённый сервер. Удалённый сервер должен иметь прямой доступ к удалённому ресурсу.
- По умолчанию, если на целевом узле установлена переменная окружения
<protocol>_proxy, запросы будут отправляться через этот прокси. Это поведение можно переопределить, установив переменную для этой задачи (см. настройка среды) или используя параметр use_proxy. - Перенаправления HTTP могут перенаправлять с HTTP на HTTPS, поэтому вы должны убедиться, что ваша среда прокси для обоих протоколов корректна.
- Начиная с Ansible 2.4, при запуске с
--check, он выполнит запрос HEAD для проверки URL, но не загрузит весь файл или не проверит его по хэшам. - Для целевых систем Windows используйте модуль ansible.windows.win_get_url вместо него.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка добавлено в 2.3 ansible.builtin | Атрибуты, которые должны иметь результирующий файл или директория. Для получения поддерживаемых флагов, обратитесь к странице справки chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в выводе lsattr. Оператор = используется по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| backup логическое значение добавлено в 2.1 ansible.builtin |
| Создать резервную копию файла, включая информацию о времени создания, чтобы вы могли восстановить исходный файл, если вы случайно его повредили. |
| checksum строка добавлено в 2.0 ansible.builtin | Значение по умолчанию: "" | Если в этот параметр передается контрольная сумма, то после загрузки целевого файла будет вычислен дайджест, чтобы убедиться в его целостности и подтвердить успешность передачи. Формат: <алгоритм>:<контрольная сумма|url>, например checksum="sha256:D98291AC[...]B6DC7B97", checksum="sha256:http://example.com/path/sha256sum.txt" Если вам нужна переносимость, алгоритм sha1 доступен на всех платформах и версиях Python. Библиотека hashlib сторонних разработчиков может быть установлена для доступа к дополнительным алгоритмам. Кроме того, если в этот параметр передается контрольная сумма, и файл существует в расположении dest, то будет вычислена destination_checksum. Если контрольная сумма равна destination_checksum, загрузка файла будет пропущена (если force не равно true). Если контрольная сумма не равна destination_checksum, целевой файл удаляется. |
| client_cert путь добавлено в 2.4 ansible.builtin | Файл цепочки сертификатов в формате PEM, используемый для аутентификации клиента SSL. Этот файл также может содержать ключ, и если ключ включен, client_key не требуется. | |
| client_key путь добавлено в 2.4 ansible.builtin | Файл в формате PEM, содержащий ваш закрытый ключ, используемый для аутентификации клиента SSL. Если client_cert содержит как сертификат, так и ключ, этот параметр не требуется. | |
| dest путь / обязательный | Абсолютный путь для загрузки файла. Если dest - это директория, будет использоваться имя файла, указанное сервером, или, если оно не указано, - базовое имя URL-адреса на удалённом сервере. Если dest - это директория, force не имеет эффекта.Если dest - это директория, файл всегда будет загружен (независимо от параметра force), но заменён только в случае изменения содержимого. | |
| force логическое значение добавлено в 0.7 ansible.builtin |
| Если yes и dest не является директорией, файл будет загружаться каждый раз и заменяться, если содержимое изменилось. Если no, файл будет загружаться только если он не существует в пункте назначения. В целом, следует использовать yes только для небольших локальных файлов.До версии 0.6 этот модуль работал так, как если бы yes был значением по умолчанию.Псевдоним thirsty устарел и будет удалён в версии 2.13.псевдонимы: thirsty |
| force_basic_auth логическое значение добавлено в 2.0 ansible.builtin |
| Принудительно отправлять заголовок Basic аутентификации при первоначальном запросе. httplib2, библиотека, используемая модулем uri, отправляет информацию об аутентификации только тогда, когда веб-сервис отвечает на первоначальный запрос кодом состояния 401. Поскольку некоторые сервисы Basic аутентификации не отправляют 401 должным образом, логины могут провалиться. |
| group строка | Имя группы, которая должна владеть файлом/директорией (как передается в chown). | |
| headers словарь добавлено в 2.0 ansible.builtin | Добавление пользовательских HTTP-заголовков к запросу в формате хеш/словарь. Формат хеш/словарь был добавлен в Ansible 2.6. Предыдущие версии использовали формат строки "key:value,key:value". Формат строки "key:value,key:value" устарел и был удалён в версии 2.10. | |
| http_agent строка | Значение по умолчанию: "ansible-httpget" | Заголовок, идентифицирующий клиента, обычно появляется в журналах веб-сервера. |
| mode сырое значение | Разрешения, которые должен иметь результирующий файл или директория. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую цифру 0, чтобы Ansible's YAML-парсер знал, что это восьмеричное число (как 0644 или 01777) или заключить его в кавычки (как '644' или '1777'), чтобы Ansible получил строку и выполнил собственное преобразование из строки в число.Передача Ansible числа без соблюдения одного из этих правил приведёт к десятичному числу, что приведёт к непредсказуемым результатам. Начиная с Ansible 1.8, режим может быть указан в символьной форме (например, u+rwx или u=rw,g=r,o=r). | |
| owner строка | Имя пользователя, который должен владеть файлом/директорией (передаётся в chown). | |
| selevel строка | Часть контекста SELinux файла, соответствующая уровню. Это атрибут MLS/MCS, иногда известный как range.Если установлено значение _default, будет использоваться часть политики level, если она доступна. | |
| serole строка | Часть контекста SELinux файла, соответствующая роли. Если установлено значение _default, будет использоваться часть политики role, если она доступна. | |
| setype строка | Часть контекста SELinux файла, соответствующая типу. Если установлено значение _default, будет использоваться часть политики type, если она доступна. | |
| seuser строка | Часть контекста SELinux файла, соответствующая пользователю. По умолчанию используется политика system, если применимо.Если установлено значение _default, будет использоваться часть политики user, если она доступна. | |
| sha256sum строка добавлено в 1.3 ansible.builtin | Значение по умолчанию: "" | Если в этот параметр передается контрольная сумма SHA-256, то после загрузки целевого файла будет вычислен дайджест, чтобы убедиться в его целостности и подтвердить успешность передачи. Этот параметр устарел и будет удалён в версии 2.14. Используйте параметр checksum вместо него. |
| timeout целое число добавлено в 1.8 ansible.builtin | Значение по умолчанию: 10 | Таймаут в секундах для запроса URL. |
| tmp_dest путь добавлено в 2.1 ansible.builtin | Абсолютный путь для временного файла загрузки. При работе с Ansible 2.5 или более поздней версии, путь по умолчанию устанавливается в настройку remote_tmp Ansible. При работе с Ansible версии 2.4 и ранее, по умолчанию используется TMPDIR, TEMP или TMP переменные окружения или значение, специфичное для платформы. | |
| unsafe_writes логическое значение добавлено в 2.2 ansible.builtin |
| Влияние на использование атомарных операций для предотвращения повреждения данных или несогласованных чтений из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто неисправны, что препятствует этому. Одним из примеров являются файлы, смонтированные в Docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только неатомарным способом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов при сбое атомарных операций (однако он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных. |
| url строка / обязательный | URL HTTP, HTTPS или FTP в формате (http|https|ftp)://[пользователь[:пароль]]@хост.домен[:порт]/путь | |
| url_password строка добавлено в 1.6 ansible.builtin | Пароль для использования в HTTP-аутентификации Basic. Если параметр url_username не указан, параметр url_password не будет использован.Начиная с версии 2.8, для этого параметра также можно использовать псевдоним "пароль". псевдонимы: password | |
| url_username строка добавлено в 1.6 ansible.builtin | Имя пользователя для использования в HTTP-аутентификации Basic. Этот параметр может быть использован без url_password, для сайтов, допускающих пустые пароли.Начиная с версии 2.8, для этого параметра также можно использовать псевдоним username. псевдонимы: username |
| use_proxy boolean |
| если no, прокси не будет использоваться, даже если он определён в переменной среды на целевых хостах. |
| validate_certs boolean |
| Если no, сертификаты SSL не будут проверены.Это следует использовать только на сайтах, которыми вы управляете лично, использующих самозаверенные сертификаты. |
Примечания
Примечание
- Для целевых систем Windows используйте модуль ansible.windows.win_get_url вместо него.
См. также
См. также
- ansible.builtin.uri
-
Официальная документация по модулю ansible.builtin.uri.
- ansible.windows.win_get_url
-
Официальная документация по модулю ansible.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
- 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=yes | имя созданного файла резервной копии после загрузки Пример: /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/ |
Авторы
- 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.10/collections/ansible/builtin/get_url_module.html