Spec-Zone.ru › Ansible 2.11

community.docker.docker_containers – Ansible динамический плагин инвентаризации для контейнеров Docker.

Примечание

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

Для его установки используйте: ansible-galaxy collection install community.docker.

Для использования в книге задач укажите: community.docker.docker_containers.

Новое в версии 1.1.0: коллекции community.docker

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

Описание

  • Считывает инвентаризацию из API Docker.
  • Использует файл конфигурации YAML, который заканчивается docker.[yml|yaml].

Требования

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

  • Docker SDK для Python: Обратите внимание, что модуль Python docker-py был заменен на docker (подробнее см. здесь). Для Python 2.6 необходимо использовать docker-py. В противном случае рекомендуется установить модуль Python docker. Обратите внимание, что оба модуля не должны устанавливаться одновременно. Также обратите внимание, что при установке и последующем удалении одного из модулей, другой может перестать работать, и потребуется его повторная установка.
  • Docker SDK для Python >= 1.10.0

Параметры

Параметр Варианты/Значения по умолчанию Настройка Комментарии
add_legacy_groups
boolean
    Варианты:
  • нет ←
  • да
Добавляет те же группы, что и скрипт инвентаризации docker. Это следующие группы:
<container id>: содержит контейнер с этим идентификатором.
<container name>: содержит контейнер с этим именем.
<container short id>: содержит контейнеры с этим коротким идентификатором (первые 13 символов идентификатора).
image_<image name>: содержит контейнеры с изображением <image name>.
stack_<stack name>: содержит контейнеры, принадлежащие к стеку <stack name>.
service_<service name>: содержит контейнеры, принадлежащие к сервису <service name>.
<docker_host>: содержит контейнеры, принадлежащие демону Docker docker_host. Полезно, если этот плагин используется для нескольких демонов Docker.
running: содержит все запущенные контейнеры.
stopped: содержит все не запущенные контейнеры.
Если этот параметр не установлен в true, используйте именованные группы для добавления контейнеров в группы. Смотрите примеры, как это сделать.
api_version
строка
Значение по умолчанию:
"auto"
Версия API Docker, работающего на хосте Docker.
По умолчанию используется самая последняя версия API, поддерживаемая Docker SDK для Python и демоном Docker.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_API_VERSION. Если переменная среды не установлена, используется значение по умолчанию.

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

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

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

Псевдонимы: tls_client_key, key_path
compose
словарь
Значение по умолчанию:
{}
Создать переменные из выражений jinja2.
connection_type
строка
    Варианты:
  • ssh
  • docker-cli
  • docker-api ←
Тип подключения к контейнерам.
По умолчанию используется SSH (ssh). Для этого используются параметры default_ip и private_ssh_port.
В качестве альтернативы, docker-cli выбирает плагин подключения docker connection plugin, а docker-api — плагин подключения docker_api connection plugin.
debug
boolean
    Варианты:
  • нет ←
  • да
Режим отладки
default_ip
строка
Значение по умолчанию:
"127.0.0.1"
IP-адрес, который будет назначен ansible_host, когда порт SSH контейнера сопоставлен с интерфейсом '0.0.0.0'.
Используется только если connection_type равен ssh.
docker_host
строка
Значение по умолчанию:
"unix://var/run/docker.sock"
URL или путь к сокету Unix, используемый для подключения к Docker API. Для подключения к удалённому хосту укажите строку TCP-соединения. Например, tcp://192.0.2.23:2376. Если для шифрования подключения используется TLS, модуль автоматически заменит tcp в URL подключения на https.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_HOST вместо него. Если переменная среды не установлена, используется значение по умолчанию.

Псевдонимы: docker_url
groups
словарь
Значение по умолчанию:
{}
Добавляет хосты в группы на основе условных выражений Jinja2.
keyed_groups
список / элементы=строка
Значение по умолчанию:
[]
Добавляет хосты в группы на основе значений переменной.
leading_separator
boolean
добавлен в версии 2.11 ansible.builtin
    Варианты:
  • нет
  • да ←
Используется вместе с keyed_groups.
По умолчанию имя именованной группы, не имеющей префикса или разделителя, начинается с подчёркивания.
Это потому, что префикс по умолчанию — "" и разделитель по умолчанию — "_".
Установите этот параметр в False, чтобы опустить ведущее подчёркивание (или другой разделитель), если префикс не задан.
Если имя группы получено из отображения, разделитель всё ещё используется для конкатенации элементов.
Для того, чтобы вообще не использовать разделитель в имени группы, установите разделитель для именованной группы в пустую строку.
plugin
строка / обязательно
    Варианты:
  • community.docker.docker_containers
Имя этого плагина, оно должно всегда быть установлено в community.docker.docker_containers для того, чтобы этот плагин мог его распознать.
private_ssh_port
целое число
Значение по умолчанию:
22
Порт, используемый контейнерами для SSH.
Используется только если connection_type равен ssh.
ssl_version
строка
Укажите допустимое значение версии SSL. Значение по умолчанию определяется модулем ssl.py.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_SSL_VERSION вместо него.
strict
boolean
    Варианты:
  • нет ←
  • да
Если yes, недействительные записи считаются ошибкой, иначе пропускаются и обработка продолжается.
Поскольку в выражениях можно использовать факты, они могут не всегда быть доступны, и по умолчанию эти ошибки игнорируются.
timeout
целое число
Значение по умолчанию:
60
Максимальное время в секундах ожидания ответа от API.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TIMEOUT вместо него. Если переменная среды не установлена, используется значение по умолчанию.
tls
boolean
    Варианты:
  • нет ←
  • да
Защитить соединение с API с помощью TLS без проверки подлинности хоста Docker. Обратите внимание, что если validate_certs также установлен в yes, он будет иметь приоритет.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS вместо него. Если переменная среды не установлена, используется значение по умолчанию.
tls_hostname
строка
Значение по умолчанию:
"localhost"
При проверке подлинности хоста Docker укажите ожидаемое имя сервера.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS_HOSTNAME вместо него. Если переменная среды не установлена, используется значение по умолчанию.
use_extra_vars
boolean
добавлен в версии 2.11 ansible.builtin
    Варианты:
  • нет ←
  • да
записи ini:

[inventory_plugins]
use_extra_vars = no

среда:ANSIBLE_INVENTORY_USE_EXTRA_VARS
Сливает дополнительные переменные в доступные переменные для составления (самый высокий приоритет).
validate_certs
boolean
    Варианты:
  • нет ←
  • да
Защитить соединение с API с помощью TLS и проверить подлинность хоста Docker.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS_VERIFY вместо него. Если переменная среды не установлена, используется значение по умолчанию.

Псевдонимы: tls_verify
verbose_output
boolean
    Варианты:
  • нет ←
  • да
Включить/отключить отображение всех доступных метаданных инспекции.
Обратите внимание, что все ключи верхнего уровня будут преобразованы в формат docker_xxx. Например, HostConfig преобразуется в docker_hostconfig.
Если это false, эти значения могут быть использованы только во время constructed, groups и keyed_groups.
Скрипт инвентаризации docker всегда добавлял эти переменные, поэтому для совместимости установите это значение в true.

Примечания

Примечание

  • Подключитесь к демону 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 с TLS, возможно, потребуется установить дополнительные пакеты Python. Для Docker SDK для Python версии 2.4 или новее это можно сделать, установив docker[tls] с помощью ansible.builtin.pip.
  • Обратите внимание, что Docker SDK для Python позволяет указать путь к конфигурации Docker только для очень немногих функций. В общем случае он будет использовать $HOME/.docker/config.json если переменная среды DOCKER_CONFIG не указана, и $DOCKER_CONFIG/config.json в противном случае.
  • Этот модуль использует Docker SDK для Python для взаимодействия с демоном Docker.

Примеры

# Minimal example using local Docker daemon
plugin: community.docker.docker_containers
docker_host: unix://var/run/docker.sock

# Minimal example using remote Docker daemon
plugin: community.docker.docker_containers
docker_host: tcp://my-docker-host:2375

# Example using remote Docker daemon with unverified TLS
plugin: community.docker.docker_containers
docker_host: tcp://my-docker-host:2376
tls: true

# Example using remote Docker daemon with verified TLS and client certificate verification
plugin: community.docker.docker_containers
docker_host: tcp://my-docker-host:2376
validate_certs: true
ca_cert: /somewhere/ca.pem
client_key: /somewhere/key.pem
client_cert: /somewhere/cert.pem

# Example using constructed features to create groups
plugin: community.docker.docker_containers
docker_host: tcp://my-docker-host:2375
strict: false
keyed_groups:
  # Add containers with primary network foo to a network_foo group
  - prefix: network
    key: 'docker_hostconfig.NetworkMode'
  # Add Linux hosts to an os_linux group
  - prefix: os
    key: docker_platform

Авторы

  • Felix Fontein (@felixfontein)

© 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/community/docker/docker_containers_inventory.html

Spec-Zone.ru

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