Spec-Zone.ru › Ansible

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

Примечание

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

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

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

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

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

Описание

  • Считывает инвентаризацию из API Docker swarm.
  • Использует файл конфигурации YAML, который заканчивается docker_swarm.(yml|yaml).
  • Плагин возвращает следующие группы узлов swarm: all — все узлы; workers — все рабочие узлы; managers — все управляющие узлы; leader — лидер кластера swarm; nonleaders — все узлы, кроме лидера кластера.

Требования

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

  • python >= 2.7
  • Docker SDK для Python >= 1.10.0

Параметры

Параметр

Комментарии

api_version

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

строка

Версия API Docker, работающая на узле Docker.

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

ca_path

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

путь

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

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

client_cert

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

путь

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

client_key

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

путь

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

compose

словарь

Создать переменные из выражений jinja2.

По умолчанию: {}

docker_host

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

строка / обязательно

Сокет узла менеджера Docker Swarm (tcp, unix).

Используйте unix:///var/run/docker.sock для подключения через локальный сокет.

filters

список / элементы=словарь

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

Список фильтров включения/исключения, которые позволяют выбирать/отключать узлы для данного инвентаризатора.

Фильтры обрабатываются последовательно до тех пор, пока не будет найден первый фильтр, где filters[].exclude или filters[].include совпадает. В случае совпадения filters[].exclude, узел исключается, а в случае совпадения filters[].include, узел включается. Если ни один фильтр не совпадает, узел включается.

exclude

строка

Условие Jinja2. Если оно совпадает для узла, этот узел исключается.

Можно указать только одно из filters[].exclude и filters[].include.

include

строка

Условие Jinja2. Если оно совпадает для узла, этот узел включается.

Можно указать только одно из filters[].exclude и filters[].include.

groups

словарь

Добавить узлы в группу на основе условных выражений Jinja2.

По умолчанию: {}

include_host_uri

логический

Переключатель для возврата дополнительного атрибута ansible_host_uri, который содержит URI лидера Swarm в формате tcp://172.16.0.1:2376. Это значение можно использовать без дополнительных изменений в качестве значения параметра docker_host в модулях Docker Swarm при подключении через API. Порт всегда по умолчанию 2376.

Варианты:

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

include_host_uri_port

целое число

Переопределить обнаруженный номер порта, включенный в ansible_host_uri.

keyed_groups

список / элементы=словарь

Добавить узлы в группу на основе значений переменной.

По умолчанию: []

default_value

строка

добавлен в ansible-core 2.12

Значение по умолчанию, если значение переменной узла пустая строка.

Этот параметр взаимоисключающий с keyed_groups[].trailing_separator.

key

строка

Ключ из входного словаря, используемый для генерации групп.

parent_group

строка

родительская группа для ключевой группы

prefix

строка

Имя ключевой группы будет начинаться с этого префикса

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

separator

строка

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

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

trailing_separator

boolean

added in ansible-core 2.12

Установите это значение в False, чтобы опустить keyed_groups[].separator после переменной хоста, когда значение является пустой строкой.

Этот параметр взаимоисключает keyed_groups[].default_value.

Варианты:

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

leading_separator

boolean

added in ansible-core 2.11

Используйте вместе с keyed_groups.

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

Это происходит потому, что значением по умолчанию для префикса является “” и для разделителя – “_”.

Установите это значение в False, чтобы опустить ведущее подчеркивание (или другой разделитель), если префикс не указан.

Если имя группы получено из отображения, разделитель по-прежнему используется для конкатенации элементов.

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

Варианты:

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

plugin

string / обязательно

Имя этого плагина, оно всегда должно быть установлено в community.docker.docker_swarm, чтобы плагин распознал его как собственный.

Варианты:

  • "docker_swarm"
  • "community.docker.docker_swarm"

ssl_version

string

Удалено в версии 4.0.0

Почему: Это было необходимо давно для решения проблем с версиями SSL. Сейчас это больше не нужно.

Альтернатива: None.

Укажите действительное значение версии SSL. Значение по умолчанию определяется модулем SSL Python.

strict

boolean

Если yes, то невалидные записи станут ошибкой, в противном случае будут пропущены.

Так как фактические данные могут использоваться в выражениях, они могут быть недоступны, и такие ошибки по умолчанию игнорируются.

Варианты:

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

timeout

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

целое число

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

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

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

tls

boolean

Подключиться с использованием TLS без проверки подлинности сервера Docker.

Варианты:

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

tls_hostname

строка

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

use_extra_vars

boolean

added in ansible-core 2.11

Объединить дополнительные переменные в доступные переменные для композиции (высший приоритет).

Варианты:

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

Настройка:

  • Запись INI:

    [inventory_plugins]
    use_extra_vars = false
    
  • Переменная среды: ANSIBLE_INVENTORY_USE_EXTRA_VARS

use_ssh_client

boolean

added in community.docker 1.5.0

Для SSH-транспортов используйте инструмент ssh CLI вместо paramiko.

Требуется Docker SDK for Python 4.4.0 или новее.

Варианты:

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

validate_certs

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

boolean

Включить/отключить подключение с использованием TLS с проверкой подлинности сервера Docker.

Варианты:

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

verbose_output

boolean

Включить/отключить вывод всех метаданных доступных узлов (например Platform, Architecture, OS, EngineVersion).

Варианты:

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

Примечания

Примечание

  • Файл конфигурации должен быть файлом YAML, имя которого заканчивается на docker_swarm.yml или docker_swarm.yaml. Другие имена файлов не будут приняты.

Примеры

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

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

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

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

# Example using constructed features to create groups and set ansible_host
plugin: community.docker.docker_swarm
docker_host: tcp://my-docker-host:2375
strict: false
keyed_groups:
  # add for example x86_64 hosts to an arch_x86_64 group
  - prefix: arch
    key: 'Description.Platform.Architecture'
  # add for example linux hosts to an os_linux group
  - prefix: os
    key: 'Description.Platform.OS'
  # create a group per node label
  # for exomple a node labeled w/ "production" ends up in group "label_production"
  # hint: labels containing special characters will be converted to safe names
  - key: 'Spec.Labels'
    prefix: label

Авторы

  • Stefan Heitmüller (@morph027)

Подсказка

Элементы конфигурации для каждого типа имеют порядок приоритетов от низкого к высокому. Например, переменная, расположенная ниже в списке, переопределит переменную, расположенную выше.

Ссылки на сборник

  • Отслеживание проблем
  • Репозиторий (источники)
  • Задать вопрос (Docker)
  • Задать вопрос (Docker Compose)
  • Задать вопрос (Docker Swarm)
  • Отправить отчет об ошибке
  • Запросить новую функцию
  • Связь

© 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_swarm_inventory.html

Spec-Zone.ru

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