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 путь | |
client_cert псевдонимы: tls_client_cert, cert_path путь | Путь к файлу TLS-сертификата клиента. |
client_key псевдонимы: tls_client_key, key_path путь | Путь к файлу TLS-ключа клиента. |
compose словарь | Создать переменные из выражений jinja2. По умолчанию: |
docker_host псевдонимы: docker_url строка / обязательно | Сокет узла менеджера Docker Swarm ( Используйте |
filters список / элементы=словарь добавлен в community.docker 3.5.0 | Список фильтров включения/исключения, которые позволяют выбирать/отключать узлы для данного инвентаризатора. Фильтры обрабатываются последовательно до тех пор, пока не будет найден первый фильтр, где |
|
exclude строка |
Условие Jinja2. Если оно совпадает для узла, этот узел исключается. Можно указать только одно из |
|
include строка |
Условие Jinja2. Если оно совпадает для узла, этот узел включается. Можно указать только одно из |
groups словарь | Добавить узлы в группу на основе условных выражений Jinja2. По умолчанию: |
include_host_uri логический | Переключатель для возврата дополнительного атрибута Варианты:
|
include_host_uri_port целое число | Переопределить обнаруженный номер порта, включенный в |
keyed_groups список / элементы=словарь | Добавить узлы в группу на основе значений переменной. По умолчанию: |
|
default_value строка добавлен в ansible-core 2.12 |
Значение по умолчанию, если значение переменной узла пустая строка. Этот параметр взаимоисключающий с |
|
key строка |
Ключ из входного словаря, используемый для генерации групп. |
|
parent_group строка |
родительская группа для ключевой группы |
|
prefix строка |
Имя ключевой группы будет начинаться с этого префикса По умолчанию: |
|
separator строка |
разделитель, используемый для построения имени ключевой группы По умолчанию: |
|
trailing_separator boolean added in ansible-core 2.12 |
Установите это значение в Этот параметр взаимоисключает Варианты:
|
leading_separator boolean added in ansible-core 2.11 | Используйте вместе с keyed_groups. По умолчанию, группа с ключом, у которой нет префикса или разделителя, будет иметь имя, начинающееся с нижнего подчеркивания. Это происходит потому, что значением по умолчанию для префикса является “” и для разделителя – “_”. Установите это значение в False, чтобы опустить ведущее подчеркивание (или другой разделитель), если префикс не указан. Если имя группы получено из отображения, разделитель по-прежнему используется для конкатенации элементов. Чтобы вообще не использовать разделитель в имени группы, установите разделитель для группы с ключом в пустую строку. Варианты:
|
plugin string / обязательно | Имя этого плагина, оно всегда должно быть установлено в Варианты:
|
ssl_version string Удалено в версии 4.0.0 Почему: Это было необходимо давно для решения проблем с версиями SSL. Сейчас это больше не нужно. Альтернатива: None. | Укажите действительное значение версии SSL. Значение по умолчанию определяется модулем SSL Python. |
strict boolean | Если Так как фактические данные могут использоваться в выражениях, они могут быть недоступны, и такие ошибки по умолчанию игнорируются. Варианты:
|
timeout псевдонимы: time_out целое число | Максимальное время ожидания ответа от API в секундах. Если значение не указано в задаче, используется значение переменной среды По умолчанию: |
tls boolean | Подключиться с использованием TLS без проверки подлинности сервера Docker. Варианты:
|
tls_hostname строка | При проверке подлинности сервера Docker укажите ожидаемое имя сервера. |
use_extra_vars boolean added in ansible-core 2.11 | Объединить дополнительные переменные в доступные переменные для композиции (высший приоритет). Варианты:
Настройка:
|
use_ssh_client boolean added in community.docker 1.5.0 | Для SSH-транспортов используйте инструмент Требуется Docker SDK for Python 4.4.0 или новее. Варианты:
|
validate_certs псевдонимы: tls_verify boolean | Включить/отключить подключение с использованием TLS с проверкой подлинности сервера Docker. Варианты:
|
verbose_output boolean | Включить/отключить вывод всех метаданных доступных узлов (например Варианты:
|
Примечания
Примечание
- Файл конфигурации должен быть файлом 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
Ссылки на сборник
© 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