Модуль community.docker.docker_container_exec — Выполнение команды в контейнере Docker
Примечание
Этот модуль является частью коллекции community.docker (версия 3.13.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.docker. Для использования этого модуля требуются дополнительные зависимости. Подробности см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: community.docker.docker_container_exec.
Новый в community.docker 1.5.0
Обзор
- Выполняет команду в контейнере Docker.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- API Docker >= 1.25
- backports.ssl_match_hostname (при использовании TLS в Python 2)
- paramiko (при использовании SSH с
use_ssh_client=false) - pyOpenSSL (при использовании TLS)
- pywin32 (при использовании именованных каналов на Windows 32)
- requests
Параметры
Параметр | Комментарии |
|---|---|
api_version псевдонимы: docker_api_version строка | Версия Docker API, работающая на Docker хосте. По умолчанию используется последняя версия API, поддерживаемая этим сбором и демоном docker. Если значение не указано в задаче, используется значение переменной окружения По умолчанию: |
argv список / элементы=строка | |
ca_path псевдонимы: ca_cert, tls_ca_cert, cacert_path путь | Используйте сертификат УЦ для проверки сервера, указав путь к файлу сертификата УЦ. Если значение не указано в задаче и переменная окружения Этот параметр назывался |
chdir строка | Каталог для выполнения команды. |
client_cert псевдонимы: tls_client_cert, cert_path путь | Путь к файлу TLS-сертификата клиента. Если значение не указано в задаче и переменная окружения |
client_key псевдонимы: tls_client_key, key_path путь | Путь к файлу TLS-ключа клиента. Если значение не указано в задаче и переменная окружения |
command строка | |
container строка / обязательно | Имя контейнера для выполнения команды. |
debug логический тип | Режим отладки Варианты:
|
detach логический тип добавлен в community.docker 2.1.0 | Выполнять команду синхронно ( Если установлено значение Варианты:
|
docker_host псевдонимы: docker_url строка | URL или путь к Unix-сокету для подключения к Docker API. Для подключения к удалённому хосту укажите строку TCP-соединения. Например, Если значение не указано в задаче, используется значение переменной окружения По умолчанию: |
env словарь добавлен в community.docker 2.1.0 | Словарь переменных окружения с соответствующими значениями, которые будут переданы команде, запущенной внутри контейнера. Значения, которые могут быть распарсены как числа, булевы значения или другие типы парсером YAML, должны быть заключены в кавычки (например, Обратите внимание, что если вы передаёте значения с использованием шаблонов Jinja2, например |
ssl_version строка | Укажите допустимое значение версии SSL. Значение по умолчанию определяется модулем SSL Python. Если значение не указано в задаче, используется значение переменной окружения |
stdin строка | Установите stdin команды непосредственно на указанное значение. Может быть использован только если |
stdin_add_newline boolean | |
strip_empty_ends boolean | Удаляет пустые строки из конца stdout/stderr в результате. Варианты:
|
timeout integer | Максимальное время в секундах ожидания ответа от API. Если значение не указано в задании, будет использовано значение переменной окружения По умолчанию: |
tls boolean | Защищает подключение к API с использованием TLS без проверки подлинности сервера Docker. Обратите внимание, что если Если значение не указано в задании, будет использовано значение переменной окружения Варианты:
|
tls_hostname string | При проверке подлинности сервера Docker укажите ожидаемое имя сервера. Если значение не указано в задании, будет использовано значение переменной окружения Обратите внимание, что этот параметр имел значение по умолчанию |
tty boolean | Признак выделения TTY. Варианты:
|
use_ssh_client boolean добавлен в community.docker 1.5.0 | Для SSH-транспортов использовать утилиту командной строки Варианты:
|
user string | Если указано, пользователь, с которым будет выполняться эта команда. |
validate_certs aliases: tls_verify boolean | Защищает подключение к API с использованием TLS и проверяет подлинность сервера Docker. Если значение не указано в задании, будет использовано значение переменной окружения Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
action_group | Группы действий: community.docker.docker, docker | Используйте |
check_mode | Поддержка: нет | Может работать в режиме проверки и возвращать прогноз изменения статуса без изменения целевого объекта. |
diff_mode | Поддержка: нет | Возвращает подробности о том, что изменилось (или, возможно, нуждается в изменении в |
Примечания
Примечание
- Не работает с сокетами TCP TLS при использовании
stdin. Это вызвано невозможностью отправкиclose_notifyбез закрытия соединения сSSLSocketPython. Подробнее см. https://github.com/ansible-collections/community.docker/issues/605. - Если вам нужно оценить переменные среды контейнера в
commandилиargv, необходимо передать команду через оболочку, например,command=/bin/sh -c "echo $ENV_VARIABLE". - Подключение к демону Docker, предоставляя параметры с каждой задачей или определяя переменные среды. Вы можете определить
DOCKER_HOST,DOCKER_TLS_HOSTNAME,DOCKER_API_VERSION,DOCKER_CERT_PATH,DOCKER_SSL_VERSION,DOCKER_TLS,DOCKER_TLS_VERIFYиDOCKER_TIMEOUT. При использовании docker machine запустите скрипт, поставляемый с продуктом, который настраивает среду. Он установит эти переменные за вас. Дополнительные сведения см. в https://docs.docker.com/machine/reference/env/. - Этот модуль не использует Docker SDK для Python для связи с демоном Docker. Он использует код, полученный из Docker SDK или Python, включённый в эту коллекцию.
Примеры
- name: Run a simple command (command)
community.docker.docker_container_exec:
container: 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_container_exec:
container: foo
argv:
- /bin/bash
- "-c"
- "ls -lah > /dev/stderr"
chdir: /root
register: result
- name: Print stderr lines
ansible.builtin.debug:
var: result.stderr_lines
Значения возврата
Общие значения возврата описаны в здесь, следующие поля уникальны для этого модуля:
Ключ | Описание |
|---|---|
exec_id строка добавлено в community.docker 2.1.0 | Идентификатор выполнения команды. Возвращаемое значение: успех и Пример: |
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_container_exec_module.html