community.docker.docker_swarm 库存 - 用于 Docker swarm 节点的 Ansible 动态库存插件。
注意
此库存插件是 community.docker 集合(版本 4.1.0)的一部分。
如果您正在使用 ansible
软件包,您可能已经安装了此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用:ansible-galaxy collection install community.docker
。您需要进一步的要求才能使用此库存插件,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定:community.docker.docker_swarm
。
概要
从 Docker swarm API 读取库存。
使用以
docker_swarm.(yml|yaml)
结尾的 YAML 配置文件。该插件返回以下 swarm 节点组:
all
- 所有主机;workers
- 所有工作节点;managers
- 所有管理节点;leader
- swarm 领导节点;nonleaders
- 除 swarm 领导节点之外的所有节点。
要求
在执行此库存的本地控制器节点上需要以下要求。
python >= 2.7
适用于 Python 的 Docker SDK >= 1.10.0
参数
参数 |
注释 |
---|---|
在 Docker 主机上运行的 Docker API 的版本。 默认为适用于 Python 的 Docker SDK 支持的最新 API 版本。 |
|
客户端 TLS 证书文件的路径。 |
|
客户端 TLS 密钥文件的路径。 |
|
从 jinja2 表达式创建变量。 默认值: |
|
Docker swarm 管理器节点的套接字( 使用 |
|
一个包含/排除过滤器的列表,允许为此库存选择/取消选择主机。 按顺序处理过滤器,直到找到第一个 |
|
一个 Jinja2 条件。如果该条件与主机匹配,则该主机将被排除。 只能指定 |
|
一个 Jinja2 条件。如果该条件与主机匹配,则该主机将被包含。 只能指定 |
|
根据 Jinja2 条件将主机添加到组。 默认值: |
|
切换是否返回附加属性 选择
|
|
覆盖 |
|
根据变量的值将主机添加到组。 默认值: |
|
当主机变量的值为空字符串时的默认值。 此选项与 |
|
用于生成组的输入字典中的键。 |
|
键控组的父组。 |
|
键控组名称将以此前缀开头。 默认值: |
|
用于构建键控组名称的分隔符。 默认值: |
|
将此选项设置为 此选项与 选择
|
|
与 默认情况下,没有提供前缀或分隔符的键控组的名称将以下划线开头。 这是因为默认前缀是 如果未提供前缀,请将此选项设置为 如果组名称是从映射派生的,则分隔符仍用于连接项。 要完全不在组名称中使用分隔符,请将键控组的分隔符设置为空字符串。 选择
|
|
此插件的名称,应始终设置为 选择
|
|
如果设置为 由于可以在表达式中使用事实,因此它们可能并非始终可用,默认情况下我们会忽略这些错误。 选择
|
|
使用 TLS 连接,而不验证 Docker 主机服务器的真实性。 选择
|
|
在验证 Docker 主机服务器的真实性时,提供服务器的预期名称。 |
|
将额外变量合并到可用于组合的变量中(最高优先级)。 选择
配置
|
|
对于 SSH 传输,请使用 需要 Docker SDK for Python 4.4.0 或更高版本。 选择
|
|
切换是否使用 TLS 连接,并验证 Docker 主机服务器的真实性。 选择
|
|
切换是否包含所有可用的节点元数据(例如 选择
|
注意事项
注意
配置文件必须是 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