Модуль community.docker.docker_compose_v2_exec — Выполнение команды в контейнере службы Compose
Примечание
Этот модуль входит в коллекцию community.docker (версия 3.13.0).
Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.docker. Для использования этого модуля необходимы дополнительные требования, см. Требования для деталей.
Чтобы использовать его в книге задач, укажите: community.docker.docker_compose_v2_exec.
Введено в версии community.docker 3.13.0
Описание
- Использует Docker Compose для выполнения команды в контейнере службы.
- Это позволяет выполнять разовые команды в контейнере существующей службы и оборачивает
docker compose exec.
Требования
Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.
- Docker CLI с плагином Docker compose версии 2.18.0 или более поздней
- PyYAML, если используется
definition
Параметры
Параметр | Комментарии |
|---|---|
api_version псевдонимы: docker_api_version строка | Версия API Docker, работающая на хосте Docker. По умолчанию используется последняя версия API, поддерживаемая этим сбором и демоном docker. Если значение не указано в задаче, используется значение переменной окружения По умолчанию: |
argv список / элементы=строка | |
ca_path псевдонимы: ca_cert, tls_ca_cert, cacert_path путь | Использование сертификата CA при проверке сервера, указав путь к файлу сертификата CA. Если значение не указано в задаче и переменная окружения |
chdir строка | Каталог для выполнения команды. |
check_files_existing логическое добавлено в community.docker 3.9.0 | Если установлено значение Это может быть полезно, если файлы среды с Варианты:
|
cli_context строка | Контекст Docker CLI для использования. Взаимоисключающее с |
client_cert псевдонимы: tls_client_cert, cert_path путь | Путь к файлу TLS-сертификата клиента. Если значение не указано в задаче и переменная окружения |
client_key псевдонимы: tls_client_key, key_path путь | Путь к файлу ключа TLS клиента. Если значение не указано в задаче и переменная окружения |
command строка | |
definition словарь добавлено в community.docker 3.9.0 | Файл Compose, описывающий один или несколько сервисов, сетей и томов. Взаимоисключающее с Если указан, PyYAML должен быть доступен для этого модуля, и Обратите внимание, что при использовании этого параметра будет создан и удален временный каталог. |
detach логическое | Выполнять команду синхронно ( Если установлено значение Варианты:
|
docker_cli путь | Путь к Docker CLI. Если не указан, будет произведен поиск Docker CLI в |
docker_host псевдонимы: docker_url строка | URL или путь к сокету Unix, используемые для подключения к API Docker. Для подключения к удаленному хосту укажите строку TCP-соединения. Например, Если значение не указано в задаче, используется значение переменной окружения Взаимоисключающее с |
env словарь | Словарь переменных среды с соответствующими значениями, которые будут переданы команде, выполняемой внутри контейнера. Значения, которые могут быть интерпретированы как числа, булевы значения или другие типы анализатором YAML, должны быть заключены в кавычки (например, Обратите внимание, что если вы передаёте значения с помощью шаблонов Jinja2, например |
env_files список / элементы=путь | По умолчанию файлы среды загружаются из файла
Путь является относительным к каталогу |
files список / элементы=путь добавлено в community.docker 3.7.0 | Список имён файлов Compose, относительных к Файлы загружаются и объединяются в указанном порядке. Взаимоисключающее с |
index целое число | Индекс контейнера, в котором будет выполняться команда, если у службы есть несколько реплик. |
privileged булево | Предоставить расширенные привилегии процессу. Варианты:
|
profiles список / элементы=строка | Список профилей для активации при запуске служб. Эквивалентно |
project_name строка | Укажите имя проекта. Если не указано, имя проекта берётся из базового имени Требуется, когда задан |
project_src путь | Путь к каталогу, содержащему файл Compose ( Если задан Взаимоисключающее с |
service строка / обязательно | Служба, в которой будет выполняться команда. |
stdin строка | Установить stdin команды напрямую на указанное значение. Может быть использовано только если |
stdin_add_newline булево | |
strip_empty_ends булево | Удаляет пустые строки из конца stdout/stderr в результате. Варианты:
|
tls булево | Защитить соединение с API с помощью TLS без проверки подлинности сервера Docker-хоста. Обратите внимание, что если Если значение не указано в задаче, будет использовано значение переменной среды Варианты:
|
tls_hostname строка | При проверке подлинности сервера Docker-хоста укажите ожидаемое имя сервера. Если значение не указано в задаче, будет использовано значение переменной среды |
tty булево | Присвоить TTY. Варианты:
|
user строка | Если задано, пользователь, с которым будет выполняться эта команда. |
validate_certs aliases: tls_verify boolean | Защитите подключение к API, используя TLS и проверяя подлинность сервера Docker. Если значение не указано в задаче, будет использовано значение переменной окружения Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группы действий: community.docker.docker, docker | Используйте |
check_mode | Поддержка: нет | Может работать в режиме |
diff_mode | Поддержка: нет | При вызове в режиме diff, модуль вернёт информацию о том, что изменилось (или, возможно, что нужно изменить в |
Примечания
Примечание
- Если вам нужно оценить переменные среды контейнера в
commandилиargv, вам нужно передать команду через оболочку, например,command=/bin/sh -c "echo $ENV_VARIABLE". - Плагин Docker Compose CLI не имеет стабильного формата вывода (см., например, https://github.com/docker/compose/issues/10872), и для основных операций также нет удобного для машин формата вывода. Модуль пытается учитывать это с помощью различных корректировок поведения, зависящих от версии, и с помощью тестирования более старых и новых версий плагина Docker Compose CLI. В настоящее время модуль протестирован с несколькими версиями плагина между 2.18.1 и 2.23.3. Точный список версий плагина со временем изменится. Новые релизы плагина Docker Compose CLI могут сломать этот модуль в любое время.
- Подключение к демону 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 CLI.
См. также
См. также
- community.docker.docker_compose_v2
-
Управление многоконтейнерными приложениями Docker с помощью плагина Docker Compose CLI.
Примеры
- name: Run a simple command (command)
community.docker.docker_compose_v2_exec:
service: foo
command: /bin/bash -c "ls -lah"
chdir: /root
register: result
- name: Print stdout
ansible.builtin.debug:
var: result.stdout
- name: Run a simple command (argv)
community.docker.docker_compose_v2_exec:
service: foo
argv:
- /bin/bash
- "-c"
- "ls -lah > /dev/stderr"
chdir: /root
register: result
- name: Print stderr lines
ansible.builtin.debug:
var: result.stderr_lines
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие поля уникальны для этого модуля:
Ключ | Описание |
|---|---|
rc целое число | |
stderr строка | Вывод стандартной ошибки контейнерной команды. Возвращается: при успехе и |
stdout строка | Вывод стандартного вывода контейнерной команды. Возвращается: при успехе и |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/docker/docker_compose_v2_exec_module.html