community.docker.docker_swarm inventory – Ansible Docker Swarm 节点的动态清单插件。
注意
此清单插件是 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 条件将主机添加到组。 默认值: |
|
切换此选项以返回附加属性 选项
|
|
覆盖 |
|
根据变量的值将主机添加到组。 默认值: |
|
主机变量的值为空字符串时的默认值。 此选项与 |
|
用于生成组的输入字典中的键 |
|
键控组的父组 |
|
键控组名将以此前缀开头 默认值: |
|
用于构建键控组名的分隔符 默认值: |
|
将此选项设置为 此选项与 选项
|
|
与 keyed_groups 结合使用。 默认情况下,未提供前缀或分隔符的键控组的名称将以下划线开头。 这是因为默认前缀为“”而默认分隔符为“_”。 如果未给出前缀,则将此选项设置为 False 以省略前导下划线(或其他分隔符)。 如果组名来自映射,则分隔符仍用于连接项目。 要完全不使用组名中的分隔符,请将键控组的分隔符设置为空字符串。 选项
|
|
此插件的名称,对于此插件能够识别自身,它应始终设置为 选项
|
|
如果为 由于可以在表达式中使用事实,因此它们可能并不总是可用,因此我们默认忽略这些错误。 选项
|
|
使用 TLS 连接,但不验证 Docker 主机服务器的真实性。 选项
|
|
验证 Docker 主机服务器的真实性时,提供服务器的预期名称。 |
|
将额外的变量合并到可用于组合的变量中(最高优先级)。 选项
配置
|
|
对于 SSH 传输,使用 需要 Python 4.4.0 或更高版本的 Docker SDK。 选项
|
|
切换是否使用 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