Spec-Zone.ru › Ansible

community.docker.docker_api connection — выполнение задач в контейнерах Docker

Примечание

Этот плагин подключения входит в коллекцию community.docker (версия 5.2.0).

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

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

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

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

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

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

  • Выполнение команд или передача файлов в существующий контейнер Docker и получение файлов из него.
  • Для непосредственного взаимодействия с демоном Docker вместо Docker CLI используется библиотека requests. Если вы хотите использовать Docker CLI, воспользуйтесь плагином подключения community.docker.docker.

Требования

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

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

Параметры

Параметр

Комментарии

api_version

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

строка

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

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

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

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

Конфигурация:

  • Переменная: ansible_docker_api_version

ca_path

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

путь

При проверке сервера используйте сертификат CA, указав путь к файлу сертификата CA.

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

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

Конфигурация:

  • Переменная: ansible_docker_ca_cert
  • Переменная: ansible_docker_ca_path

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

client_cert

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

путь

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

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

Конфигурация:

  • Переменная: ansible_docker_client_cert

client_key

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

путь

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

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

Конфигурация:

  • Переменная: ansible_docker_client_key

container_timeout

целое число

Определяет, как долго можно ждать возможности прочитать вывод контейнера после начала выполнения.

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

Конфигурация:

  • Записи INI:

    [defaults]
    timeout = 10
    
    [docker_connection]
    timeout = 10
    

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

  • Переменная среды: ANSIBLE_TIMEOUT
  • Переменная среды: ANSIBLE_DOCKER_TIMEOUT

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

  • Аргумент CLI: --timeout
  • Переменная: ansible_docker_timeout

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

debug

логическое значение

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

Варианты:

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

docker_host

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

строка

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

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

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

Конфигурация:

  • Переменная: ansible_docker_docker_host

extra_env

словарь

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

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

Из-за ограничений менеджера конфигурации ansible-core сейчас этот параметр можно указать только в виде переменных Ansible.

Конфигурация:

  • Переменная: ansible_docker_extra_env

privileged

логическое значение

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

Нужно ли выполнять команды с расширенными привилегиями.

Примечание: это может позволить команде выйти за пределы контейнера. Используйте с осторожностью!

Варианты:

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

Конфигурация:

  • Запись INI:

    [docker_connection]
    privileged = false
    
  • Переменная среды: ANSIBLE_DOCKER_PRIVILEGED
  • Переменная: ansible_docker_privileged

remote_addr

строка

Имя контейнера, к которому требуется получить доступ.

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

Конфигурация:

  • Переменная: inventory_hostname
  • Переменная: ansible_host
  • Переменная: ansible_docker_host

remote_user

строка

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

Конфигурация:

  • Запись INI:

    [defaults]
    remote_user = VALUE
    
  • Переменная среды: ANSIBLE_REMOTE_USER
  • Аргумент CLI: --user
  • Ключевое слово: remote_user
  • Переменная: ansible_user
  • Переменная: ansible_docker_user

timeout

целое число

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

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

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

Конфигурация:

  • Переменная: ansible_docker_timeout

tls

логическое значение

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

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

Варианты:

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

Конфигурация:

  • Переменная: ansible_docker_tls

tls_hostname

строка

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

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

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

Конфигурация:

  • Переменная: ansible_docker_tls_hostname

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

Конфигурация:

  • Переменная: ansible_docker_validate_certs

working_dir

строка

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

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

Требуется Docker API версии 1.35 или более поздней.

Конфигурация:

  • Запись INI:

    [docker_connection]
    working_dir = VALUE
    
  • Переменная среды: ANSIBLE_DOCKER_WORKING_DIR
  • Переменная: ansible_docker_working_dir

Примечание

Для каждого типа записей конфигурации, перечисленных выше (переменная Ansible, переменная среды и т. д.), задан приоритет от низкого к высокому. Например, переменная, расположенная ниже в списке, переопределяет переменную, расположенную выше. Типы записей также упорядочены по приоритету от низкого к высокому. Например, запись в ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).

Примечания

Примечание

  • Не работает с TCP-сокетами TLS! Это связано с невозможностью отправить close_notify, не закрыв соединение с помощью SSLSocket из Python. Дополнительную информацию см. на странице https://github.com/ansible-collections/community.docker/issues/605.
  • Подключайтесь к демону 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 for Python для взаимодействия с демоном Docker. Он использует код, производный от Docker SDK или Python и включенный в эту коллекцию.

Авторы

  • 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_api_connection.html

Spec-Zone.ru

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