Spec-Zone.ru › Ansible 2.10

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

Примечание

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

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

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

Новое в версии 1.1.0: of 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 символов ID).
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
string
Значение по умолчанию:
"auto"
Версия API Docker, запущенного на Docker Host.
По умолчанию используется последняя версия API, поддерживаемая Docker SDK для Python и демоном docker.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_API_VERSION . Если переменная среды не задана, будет использовано значение по умолчанию.

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

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

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

псевдонимы: tls_client_key, key_path
compose
dictionary
Значение по умолчанию:
{}
Создать переменные из выражений jinja2.
connection_type
string
    Варианты:
  • ssh
  • docker-cli
  • docker-api ←
Тип подключения для использования контейнеров.
По умолчанию используется SSH (ssh). Для этого используются параметры default_ip и private_ssh_port.
В качестве альтернативы, docker-cli выбирает плагин подключения docker, а docker-api - плагин подключения docker_api.
debug
boolean
    Варианты:
  • нет ←
  • да
Режим отладки
default_ip
string
Значение по умолчанию:
"127.0.0.1"
IP-адрес, который нужно назначить ansible_host, когда порт SSH контейнера сопоставлен интерфейсу '0.0.0.0'.
Используется только если connection_type равен ssh.
docker_host
string
Значение по умолчанию:
"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
dictionary
Значение по умолчанию:
{}
Добавить хосты в группу на основе условных операторов Jinja2.
keyed_groups
list / elements=string
Значение по умолчанию:
[]
Добавить хосты в группу на основе значений переменной.
plugin
string / required
    Варианты:
  • community.docker.docker_containers
Имя этого плагина, оно должно всегда быть установлено в community.docker.docker_containers для того, чтобы плагин распознал его как свой.
private_ssh_port
integer
Значение по умолчанию:
22
Порт, используемый контейнерами для SSH.
Используется только если connection_type равен ssh.
ssl_version
string
Укажите допустимое значение версии SSL. Значение по умолчанию определяется модулем ssl.py.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_SSL_VERSION.
strict
boolean
    Варианты:
  • нет ←
  • да
Если yes сделать некорректные записи ошибкой, иначе пропустить и продолжить.
Так как в выражениях можно использовать факты, они могут быть не всегда доступны, и мы игнорируем эти ошибки по умолчанию.
timeout
integer
Значение по умолчанию:
60
Максимальное время в секундах ожидания ответа от API.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TIMEOUT . Если переменная среды не задана, будет использовано значение по умолчанию.
tls
boolean
    Варианты:
  • нет ←
  • да
Защитить подключение к API с помощью TLS, не проверяя подлинность сервера Docker. Обратите внимание, что если validate_certs также установлено в yes, то оно будет иметь приоритет.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS . Если переменная среды не задана, будет использовано значение по умолчанию.
tls_hostname
string
Значение по умолчанию:
"localhost"
При проверке подлинности сервера Docker укажите ожидаемое имя сервера.
Если значение не указано в задаче, будет использовано значение переменной среды DOCKER_TLS_HOSTNAME . Если переменная среды не задана, будет использовано значение по умолчанию.
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–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/docker/docker_containers_inventory.html

Spec-Zone.ru

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