Spec-Zone.ru › Ansible

Модуль community.docker.docker_container_copy_into — копирование файла в контейнер Docker

Примечание

Этот модуль входит в коллекцию community.docker (версия 5.2.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.docker. Для использования этого модуля необходимы дополнительные требования; подробности см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.docker.docker_container_copy_into.

Добавлено в community.docker 3.4.0

  • Краткое описание
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • Примеры
  • Возвращаемые значения

Краткое описание

  • Копирование файла в контейнер Docker.
  • Аналогично docker cp.
  • Чтобы скопировать файлы в неработающий контейнер, необходимо указать параметры owner_id и group_id. Это также необходимо, если в контейнере отсутствует оболочка /bin/sh с утилитой id.

Примечание

Для этого модуля имеется соответствующий плагин действия.

Требования

На узле, который выполняет этот модуль, необходимы следующие компоненты.

  • Docker API >= 1.25
  • paramiko (при использовании SSH с use_ssh_client=false)
  • pyOpenSSL (при использовании TLS)
  • pywin32 (при использовании именованных каналов в Windows 32)
  • requests

Параметры

Параметр

Комментарии

api_version

псевдонимы: docker_api_version

строка

Версия Docker API, работающего на узле Docker.

По умолчанию используется последняя версия API, поддерживаемая этой коллекцией и демоном Docker.

Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_API_VERSION. Если переменная среды не задана, будет использовано значение по умолчанию.

По умолчанию: "auto"

ca_path

псевдонимы: ca_cert, tls_ca_cert, cacert_path

путь

Чтобы проверить сервер, укажите путь к файлу сертификата CA.

Если значение не указано в задаче, а переменная среды DOCKER_CERT_PATH задана, будет использован файл ca.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.

Ранее этот параметр назывался ca_cert; в community.docker 3.6.0 он был переименован в ca_path. Старое имя добавлено как псевдоним, и его по-прежнему можно использовать.

client_cert

псевдонимы: tls_client_cert, cert_path

путь

Путь к файлу сертификата TLS клиента.

Если значение не указано в задаче, а переменная среды DOCKER_CERT_PATH задана, будет использован файл cert.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.

client_key

псевдонимы: tls_client_key, key_path

путь

Путь к файлу ключа TLS клиента.

Если значение не указано в задаче, а переменная среды DOCKER_CERT_PATH задана, будет использован файл key.pem из каталога, указанного в переменной среды DOCKER_CERT_PATH.

container

строка / обязательный

Имя контейнера, в который нужно скопировать файлы.

container_path

строка / обязательный

Путь к файлу внутри контейнера Docker.

Должен быть абсолютным путем.

content

строка

Содержимое файла.

Если требуется передать двоичные данные, предварительно закодируйте их в Base64 и задайте content_is_b64=true.

Взаимоисключающий параметр с path. Необходимо указать один из параметров: content или path.

content_is_b64

логический

Если установлено значение true, содержимое в content считается закодированным в Base64 и перед использованием будет декодировано.

Для работы с двоичными данными content рекомендуется оставить их закодированными в Base64 и позволить этому параметру декодировать их. В противном случае данные могут быть интерпретированы как UTF-8 и повреждены.

Варианты:

  • false ← (по умолчанию)
  • true

debug

логический

Режим отладки

Варианты:

  • false ← (по умолчанию)
  • true

docker_host

псевдонимы: docker_url

строка

URL или путь к сокету Unix, используемый для подключения к Docker API. Для подключения к удаленному узлу укажите строку TCP-подключения. Например, tcp://192.0.2.23:2376. Если для шифрования подключения используется TLS, модуль автоматически заменит tcp в URL подключения на https.

Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_HOST. Если переменная среды не задана, будет использовано значение по умолчанию.

По умолчанию: "unix:///var/run/docker.sock"

follow

логический

Этот флаг указывает, следует ли переходить по ссылкам файловой системы в контейнере Docker, если они существуют.

Варианты:

  • false ← (по умолчанию)
  • true

force

логический

Если установлено значение true, принудительно записать файл (не выполняя проверок идемпотентности).

Если установлено значение false, записать файл, только если он не существует на целевом узле. Если в месте назначения существует объект файловой системы, модуль ничего не изменит.

Если этот параметр не указан, модуль будет идемпотентным. Для проверки идемпотентности модуль попытается получить сведения об объекте файловой системы в контейнере. Если все параметры совпадают, он загрузит файл из контейнера и сравнит его с файлом для загрузки.

Варианты:

  • false
  • true

group_id

целое число

ID группы, который следует использовать при записи файла на диск.

Если этот параметр указан, необходимо также указать owner_id.

Если параметр не указан, модуль попытается определить идентификаторы пользователя и группы текущего пользователя в контейнере. Это сработает только в том случае, если в контейнере присутствует /bin/sh и доступна двоичная программа или встроенная команда оболочки id. Кроме того, контейнер должен быть запущен.

local_follow

логический

Этот флаг указывает, следует ли переходить по ссылкам файловой системы в исходном дереве (на узле, где выполняется модуль), если они существуют.

Варианты:

  • false
  • true ← (по умолчанию)

mode

любой

Режим доступа к файлу, используемый при записи файла на диск.

Если этот параметр не указан, будет использоваться режим файла в исходной системе.

Способ разбора этого параметра зависит от значения mode_parse.

mode_parse

строка

добавлено в community.docker 4.6.0

Определяет способ разбора параметра mode.

Варианты:

  • "legacy" (по умолчанию): разбирает значение mode как целое число.

    Обратите внимание: если передать mode восьмеричное число в виде строки, оно будет разобрано как десятичное число. Однако если передать восьмеричное целое число напрямую, оно будет обработано ожидаемым образом.

    Такое поведение было задано по умолчанию с момента добавления модуля в community.docker.

  • "modern": разбирает значение mode как восьмеричную строку либо использует значение целого числа, если оно было передано.

    Именно так параметр mode обрабатывается в модуле ansible.builtin.copy.

  • "octal_string_only": отклоняет любые значения, кроме строк, которые можно разобрать как восьмеричное число.

    Используйте это значение, чтобы исключить случайное преобразование в целые числа.

owner_id

целое число

ID владельца, который следует использовать при записи файла на диск.

Если этот параметр указан, необходимо также указать group_id.

Если параметр не указан, модуль попытается определить идентификаторы пользователя и группы текущего пользователя в контейнере. Это сработает только в том случае, если в контейнере присутствует /bin/sh и доступна двоичная программа или встроенная команда оболочки id. Кроме того, контейнер должен быть запущен.

path

путь

Путь к файлу на управляемом узле.

Взаимоисключающий параметр с content. Необходимо указать один из параметров: content или path.

timeout

целое число

Максимальное время ожидания ответа от API в секундах.

Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_TIMEOUT. Если переменная среды не задана, будет использовано значение по умолчанию.

По умолчанию: 60

tls

логический

Защитить подключение к API с помощью TLS без проверки подлинности сервера узла Docker. Обратите внимание: если validate_certs также имеет значение true, этот параметр будет иметь приоритет.

Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_TLS. Если переменная среды не задана, будет использовано значение по умолчанию.

Варианты:

  • false ← (по умолчанию)
  • true

tls_hostname

строка

При проверке подлинности сервера узла Docker укажите ожидаемое имя сервера.

Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_TLS_HOSTNAME. Если переменная среды не задана, будет использовано значение по умолчанию.

Обратите внимание: в предыдущих версиях значением этого параметра по умолчанию было localhost. Оно было удалено в community.docker 3.0.0.

use_ssh_client

логический

добавлено в community.docker 1.5.0

Для транспорта SSH использовать инструмент командной строки ssh вместо paramiko.

Варианты:

  • false ← (по умолчанию)
  • true

validate_certs

псевдонимы: tls_verify

логический

Защитить подключение к API с помощью TLS и проверить подлинность сервера узла Docker.

Если значение не указано в задаче, вместо него будет использовано значение переменной среды DOCKER_TLS_VERIFY. Если переменная среды не задана, будет использовано значение по умолчанию.

Варианты:

  • false ← (по умолчанию)
  • true

Атрибуты

Атрибут

Поддержка

Описание

action_group

Группы действий: community.docker.docker, docker

Используйте group/docker или group/community.docker.docker в module_defaults, чтобы задать значения по умолчанию для этого модуля.

check_mode

Поддержка: полная

Может работать в режиме check_mode и возвращать прогноз состояния изменений, не изменяя целевой узел.

diff_mode

Поддержка: полная

Для вычисления различий потребуется передать дополнительные данные.

Модуль использует настройку ansible-core MAX_FILE_SIZE_FOR_DIFF, чтобы определить максимальный размер файлов, для которых вычисляются различия.

В режиме сравнения возвращает сведения об изменениях (или о возможных изменениях в check_mode).

idempotent

Поддержка: частичная

Если force=true, модуль не является идемпотентным.

При повторном запуске подряд вне режима проверки с теми же аргументами второй запуск сообщает об отсутствии изменений.

Предполагается, что система, которой управляет модуль или к которой он обращается, не изменилась существенным образом.

Примечания

Примечание

  • Подключайтесь к демону Docker, передавая параметры в каждой задаче или задавая переменные среды. Можно задать переменные DOCKER_HOST, DOCKER_TLS_HOSTNAME, DOCKER_API_VERSION, DOCKER_CERT_PATH, DOCKER_TLS, DOCKER_TLS_VERIFY и DOCKER_TIMEOUT. Если вы используете docker machine, запустите поставляемый с продуктом скрипт настройки среды. Он задаст эти переменные за вас. Подробнее см. на странице https://docs.docker.com/machine/reference/env/.
  • Этот модуль не использует Docker SDK для Python для взаимодействия с демоном Docker. Он использует код, производный от Docker SDK или Python и включенный в эту коллекцию.

Примеры

---
- name: Copy a file into the container
  community.docker.docker_container_copy_into:
    container: mydata
    path: /home/user/data.txt
    container_path: /data/input.txt

- name: Copy a file into the container with owner, group, and mode set
  community.docker.docker_container_copy_into:
    container: mydata
    path: /home/user/bin/runme.o
    container_path: /bin/runme
    owner_id: 0 # root
    group_id: 0 # root
    mode: "0755" # readable and executable by all users, writable by root
    mode_parse: modern # ensure that strings passed for 'mode' are passed as octal numbers

Возвращаемые значения

Общие возвращаемые значения описаны здесь, ниже перечислены поля, уникальные для этого модуля:

Ключ

Описание

container_path

строка

Фактический путь в контейнере.

Может отличаться от container_path только при условии follow=true.

Возвращается: при успехе

Авторы

  • Felix Fontein (@felixfontein)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Запросить помощь (Docker)
  • Запросить помощь (Docker Compose)
  • Запросить помощь (Docker Swarm)
  • Сообщить об ошибке
  • Запросить новую функцию
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/docker/docker_container_copy_into_module.html

Spec-Zone.ru

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