community.docker.docker_swarm inventory – плагин динамической инвентаризации Ansible для узлов Docker Swarm
Примечание
Этот плагин инвентаризации входит в коллекцию community.docker (версия 5.2.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— все узлы, кроме узла-лидера Swarm.
Требования
На локальном узле контроллера, выполняющем эту инвентаризацию, необходимы следующие компоненты.
- Docker SDK for Python >= 1.10.0
Параметры
Параметр | Комментарии |
|---|---|
api_version псевдонимы: docker_api_version string | Версия API Docker, работающего на узле Docker. По умолчанию используется последняя версия API, поддерживаемая Docker SDK for Python. |
ca_path псевдонимы: ca_cert, tls_ca_cert, cacert_path path | |
client_cert псевдонимы: tls_client_cert, cert_path path | Путь к файлу TLS-сертификата клиента. |
client_key псевдонимы: tls_client_key, key_path path | Путь к файлу TLS-ключа клиента. |
compose dictionary | Создавать переменные на основе выражений Jinja2. По умолчанию: |
docker_host псевдонимы: docker_url string / обязательный | Сокет узла-менеджера Docker Swarm ( Используйте |
filters list / elements=dictionary добавлено в community.docker 3.5.0 | Список фильтров включения и исключения, позволяющих выбирать или исключать узлы из этой инвентаризации. Фильтры обрабатываются последовательно до первого фильтра, которому соответствует |
|
exclude string |
Условие Jinja2. Если оно выполняется для узла, этот узел исключается. Можно указать только один из параметров |
|
include string |
Условие Jinja2. Если оно выполняется для узла, этот узел включается. Можно указать только один из параметров |
groups dictionary | Добавлять узлы в группы на основе условий Jinja2. По умолчанию: |
include_host_uri boolean | Включить или отключить возврат дополнительного атрибута Варианты:
|
include_host_uri_port integer | Переопределить обнаруженный номер порта, включаемый в |
keyed_groups list / elements=dictionary | Добавлять узлы в группы на основе значений переменной. По умолчанию: |
|
default_value string добавлено в ansible-core 2.12 |
Значение по умолчанию, если значение переменной узла равно Этот параметр нельзя использовать одновременно с |
|
key string |
Ключ входного словаря, используемый для создания групп. |
|
parent_group string |
Родительская группа для группы, созданной по ключу. |
|
prefix string |
Имя группы, созданной по ключу, будет начинаться с этого префикса. По умолчанию: |
|
separator string |
Разделитель, используемый для формирования имени группы по ключу. По умолчанию: |
|
trailing_separator boolean добавлено в ansible-core 2.12 |
Установите этот параметр в Этот параметр нельзя использовать одновременно с Варианты:
|
leading_separator boolean добавлено в ansible-core 2.11 | Используется вместе с По умолчанию имя группы, созданной по ключу, для которой не задан префикс или разделитель, начинается с символа подчеркивания. Это связано с тем, что префикс по умолчанию — Установите этот параметр в Если имя группы формируется из отображения, разделитель по-прежнему используется для объединения элементов. Чтобы вообще не использовать разделитель в имени группы, задайте для группы по ключу пустую строку в качестве разделителя. Варианты:
|
plugin string / обязательный | Имя этого плагина. Чтобы плагин распознал конфигурацию как свою, здесь всегда должно быть указано Варианты:
|
strict boolean | Если Поскольку в выражениях можно использовать факты, они могут быть доступны не всегда; по умолчанию такие ошибки игнорируются. Варианты:
|
timeout псевдонимы: time_out integer | Максимальное время ожидания ответа от API в секундах. Если значение не указано в задаче, вместо него будет использовано значение переменной окружения По умолчанию: |
tls boolean | Подключаться с использованием TLS без проверки подлинности сервера узла Docker. Варианты:
|
tls_hostname string | При проверке подлинности сервера узла Docker укажите ожидаемое имя сервера. |
use_extra_vars boolean добавлено в ansible-core 2.11 | Объединять дополнительные переменные с доступными переменными для формирования значений (наивысший приоритет). Варианты:
Конфигурация:
|
use_ssh_client boolean добавлено в community.docker 1.5.0 | Для SSH-транспорта использовать инструмент командной строки Требуется Docker SDK for Python версии 4.4.0 или новее. Варианты:
|
validate_certs псевдонимы: tls_verify boolean | Включить или отключить проверку подлинности сервера узла Docker при подключении с использованием TLS. Варианты:
|
verbose_output boolean | Включить или отключить вывод всех доступных метаданных узлов (например, Варианты:
|
Примечание
Для перечисленных выше параметров конфигурации (переменных Ansible, переменных окружения и т. д.) действует порядок приоритета от низкого к высокому. Например, переменная, расположенная ниже в списке, переопределит переменную, расположенную выше. Типы записей также упорядочены по приоритету от низкого к высокому. Например, запись ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).
Примечания
Примечание
- Файл конфигурации должен быть файлом YAML, имя которого заканчивается на
docker_swarm.ymlилиdocker_swarm.yaml. Файлы с другими именами не принимаются. - На этом этапе инвентаризация еще не окончательно сформирована, поэтому автоматически заполненные группы
allиungroupedбудут отражать только то, что явно добавили в них предыдущие источники инвентаризации. - Во время построения инвентаризации недоступны «магические переменные» времени выполнения. Например,
groupsиhostvarsеще не существуют.
Примеры
---
# 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
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/docker/docker_swarm_inventory.html