Spec-Zone.ru › Ansible 2.11

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 переменные среды или платформно-зависимое значение.
https://docs.python.org/2/library/tempfile.html#tempfile.tempdir
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
    Варианты:
  • no ←
  • yes
Использовать GSSAPI для выполнения аутентификации, обычно для аутентификации Kerberos или Kerberos через Negotiate.
Требуется установка Python-библиотеки gssapi.
Удостоверения GSSAPI можно указать с помощью url_username/url_password или с помощью переменной окружения GSSAPI KRB5CCNAME, которая определяет пользовательский кэш Kerberos-удостоверений.
Аутентификация NTLM not поддерживается, даже если механизм GSSAPI для NTLM был установлен.
use_proxy
boolean
    Варианты:
  • no
  • yes ←
Если no, прокси не будет использоваться, даже если он определён в переменной окружения на целевых хостах.
validate_certs
boolean
    Варианты:
  • no
  • yes ←
Если 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API