community.docker.docker_swarm inventory – Ansible dynamic inventory plugin for Docker swarm nodes.
Note
This inventory plugin is part of the community.docker collection (version 3.13.0).
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install community.docker
.
You need further requirements to be able to use this inventory plugin,
see Requirements for details.
To use it in a playbook, specify: community.docker.docker_swarm
.
Synopsis
Reads inventories from the Docker swarm API.
Uses a YAML configuration file docker_swarm.[yml|yaml].
The plugin returns following groups of swarm nodes:
all
- all hosts;workers
- all worker nodes;managers
- all manager nodes;leader
- the swarm leader node;nonleaders
- all nodes except the swarm leader.
Requirements
The below requirements are needed on the local controller node that executes this inventory.
python >= 2.7
Docker SDK for Python >= 1.10.0
Parameters
Parameter |
Comments |
---|---|
The version of the Docker API running on the Docker Host. Defaults to the latest version of the API supported by Docker SDK for Python. |
|
Path to the client’s TLS certificate file. |
|
Path to the client’s TLS key file. |
|
Create vars from jinja2 expressions. Default: |
|
Socket of a Docker swarm manager node ( Use |
|
A list of include/exclude filters that allows to select/deselect hosts for this inventory. Filters are processed sequentially until the first filter where |
|
A Jinja2 condition. If it matches for a host, that host is excluded. Exactly one of |
|
A Jinja2 condition. If it matches for a host, that host is included. Exactly one of |
|
Add hosts to group based on Jinja2 conditionals. Default: |
|
Toggle to return the additional attribute Choices:
|
|
Override the detected port number included in |
|
Add hosts to group based on the values of a variable. Default: |
|
The default value when the host variable’s value is an empty string. This option is mutually exclusive with |
|
The key from input dictionary used to generate groups. |
|
parent group for keyed group. |
|
A keyed group name will start with this prefix. Default: |
|
separator used to build the keyed group name. Default: |
|
Set this option to This option is mutually exclusive with Choices:
|
|
Use in conjunction with By default, a keyed group that does not have a prefix or a separator provided will have a name that starts with an underscore. This is because the default prefix is Set this option to If the group name is derived from a mapping the separator is still used to concatenate the items. To not use a separator in the group name at all, set the separator for the keyed group to an empty string instead. Choices:
|
|
The name of this plugin, it should always be set to Choices:
|
|
Provide a valid SSL version number. Default value determined by SSL Python module. |
|
If Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default. Choices:
|
|
The maximum amount of time in seconds to wait on a response from the API. If the value is not specified in the task, the value of environment variable Default: |
|
Connect using TLS without verifying the authenticity of the Docker host server. Choices:
|
|
When verifying the authenticity of the Docker host server, provide the expected name of the server. |
|
Merge extra vars into the available variables for composition (highest precedence). Choices:
Configuration:
|
|
For SSH transports, use the Requires Docker SDK for Python 4.4.0 or newer. Choices:
|
|
Toggle if connecting using TLS with or without verifying the authenticity of the Docker host server. Choices:
|
|
Toggle to (not) include all available nodes metadata (for example Choices:
|
Examples
# 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