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 удаленного сервера. Если это каталог, 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, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую ноль, чтобы парсер YAML Ansible знал, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '1777') для того, чтобы Ansible получил строку и мог выполнить собственное преобразование из строки в число.Передача Ansible числа без соблюдения одного из этих правил приведет к десятичному числу, что приведет к непредсказуемым результатам. Начиная с Ansible 1.8, режим может быть указан в символичной форме (например, u+rwx или u=rw,g=r,o=r).Если mode не указан и целевой файл не существует, то по умолчанию будет использоваться umask на системе при установке режима для вновь созданного файла.Если mode не указан и целевой файл существует, то будет использоваться режим существующего файла.Указание mode — это лучший способ гарантировать, что файлы создаются с правильными разрешениями. См. CVE-2020-1736 для получения дополнительной информации. | |
| 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.5 он по умолчанию устанавливается на 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» для этого параметра. псевдонимы: password |
| url_username string добавлено в 1.6 ansible.builtin | Имя пользователя для использования в аутентификации HTTP basic. Этот параметр можно использовать без url_password для сайтов, допускающих пустые пароли.С версии 2.8 вы также можете использовать псевдоним username для этого параметра.Псевдонимы: username | |
| use_gssapi boolean добавлено в 2.11 ansible.builtin |
| Использовать GSSAPI для выполнения аутентификации, обычно для аутентификации Kerberos или Kerberos через Negotiate. Требуется установка Python-библиотеки gssapi. Удостоверения GSSAPI можно указать с помощью url_username/url_password или с помощью переменной окружения GSSAPI KRB5CCNAME, которая определяет пользовательский кэш Kerberos-удостоверений.Аутентификация NTLM not поддерживается, даже если механизм GSSAPI для NTLM был установлен. |
| 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 string | изменён и если backup=yes | имя файла резервной копии, созданного после загрузки Пример: /path/to/file.txt.2015-02-12@22:09~ |
| checksum_dest string | успех | sha1 контрольная сумма файла после копирования Пример: 6e642bb8dd5c2e027bf21dd923337cbb4214f827 |
| checksum_src string | успех | sha1 контрольная сумма файла Пример: 6e642bb8dd5c2e027bf21dd923337cbb4214f827 |
| dest string | успех | целевой файл/путь Пример: /path/to/file.txt |
| elapsed integer | всегда | Количество секунд, затраченное на загрузку Пример: 23 |
| gid integer | успех | идентификатор группы файла Пример: 100 |
| group string | успех | группа файла Пример: httpd |
| md5sum string | при поддержке | md5 контрольная сумма файла после загрузки Пример: 2a5aeecc61dc98c4d780b14b330e3282 |
| mode string | успех | разрешения целевого объекта Пример: 0644 |
| msg string | всегда | HTTP сообщение из запроса Пример: OK (неизвестные байты) |
| owner string | успех | владелец файла Пример: httpd |
| secontext string | успех | контекст безопасности SELinux файла Пример: unconfined_u:object_r:user_tmp_t:s0 |
| size integer | успех | размер целевого объекта Пример: 1220 |
| src string | всегда | исходный файл, использованный после загрузки Пример: /tmp/tmpAdFLdV |
| state string | успех | состояние целевого объекта Пример: файл |
| status_code integer | всегда | HTTP код состояния из запроса Пример: 200 |
| uid integer | успех | идентификатор владельца файла после выполнения Пример: 100 |
| url string | всегда | фактический URL, используемый для запроса Пример: https://www.ansible.com/ |
Авторы
- Jan-Piet Mens (@jpmens)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/builtin/get_url_module.html