docker_swarm – Ansible dynamic inventory plugin for Docker swarm nodes
docker_swarm – Ansible dynamic inventory plugin for Docker swarm nodes
New in version 2.8.
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 master node that executes this inventory.
- python >= 2.7
- Docker SDK for Python >= 1.10.0
Parameters
Parameter | Choices/Defaults | Configuration | Comments |
---|---|---|---|
api_version string |
The version of the Docker API running on the Docker Host. Defaults to the latest version of the API supported by docker-py.
| ||
ca_cert path |
Use a CA certificate when performing server verification by providing the path to a CA certificate file.
| ||
client_cert path |
Path to the client's TLS certificate file.
| ||
client_key path |
Path to the client's TLS key file.
| ||
compose dictionary |
Default: {} |
Create vars from jinja2 expressions. | |
docker_host string / required |
Socket of a Docker swarm manager node ( Use
| ||
groups dictionary |
Default: {} |
Add hosts to group based on Jinja2 conditionals. | |
include_host_uri boolean |
|
Toggle to return the additional attribute | |
include_host_uri_port integer |
Override the detected port number included in ansible_host_uri | ||
keyed_groups list |
Default: [] |
Add hosts to group based on the values of a variable. | |
plugin string / required |
|
The name of this plugin, it should always be set to | |
ssl_version string |
Provide a valid SSL version number. Default value determined by ssl.py module. | ||
strict boolean |
|
If Since it is possible to use facts in the expressions they might not always be available and we ignore those errors by default. | |
timeout integer |
Default: 60 |
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
| |
tls boolean |
|
Connect using TLS without verifying the authenticity of the Docker host server. | |
tls_hostname string |
When verifying the authenticity of the Docker host server, provide the expected name of the server. | ||
validate_certs boolean |
|
Toggle if connecting using TLS with or without verifying the authenticity of the Docker host server.
| |
verbose_output boolean |
|
Toggle to (not) include all available nodes metadata (e.g. |
Examples
# Minimal example using local docker
plugin: docker_swarm
docker_host: unix://var/run/docker.sock
# Minimal example using remote docker
plugin: docker_swarm
docker_host: tcp://my-docker-host:2375
# Example using remote docker with unverified TLS
plugin: docker_swarm
docker_host: tcp://my-docker-host:2376
tls: yes
# Example using remote docker with verified TLS and client certificate verification
plugin: docker_swarm
docker_host: tcp://my-docker-host:2376
validate_certs: yes
ca_cert: /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: docker_swarm
docker_host: tcp://my-docker-host:2375
strict: False
keyed_groups:
# add e.g. x86_64 hosts to an arch_x86_64 group
- prefix: arch
key: 'Description.Platform.Architecture'
# add e.g. linux hosts to an os_linux group
- prefix: os
key: 'Description.Platform.OS'
# create a group per node label
# e.g. 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
Status
- This inventory is not guaranteed to have a backwards compatible interface. [preview]
- This inventory is maintained by the Ansible Community. [community]
Authors
- Stefan Heitmüller (@morph027) <[email protected]>
Hint
Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/plugins/inventory/docker_swarm.html