community.docker.docker_swarm_info 模块 – 获取 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_info
。
概要
检索有关 Docker Swarm 的信息。
返回服务(节点、服务、任务)的 Swarm 对象名称列表。
输出取决于 Docker 主机上可用的 API 版本。
必须在 Swarm Manager 节点上运行;否则模块会因错误消息而失败。它在错误和成功时都会返回布尔标志,指示是否可以与 Docker 守护程序通信,它是否处于 Swarm 模式以及它是否是 Swarm Manager 节点。
要求
执行此模块的主机需要以下要求。
Docker API >= 1.25
Docker SDK for Python:请注意,docker-py Python 模块已被 docker 取代(有关详细信息,请参阅 此处)。请注意,这两个模块*不应*同时安装。另请注意,当同时安装这两个模块并且卸载其中一个时,另一个模块可能不再起作用,并且需要重新安装。
用于 Python 的 Docker SDK >= 1.10.0
参数
参数 |
注释 |
---|---|
在 Docker 主机上运行的 Docker API 的版本。 默认为 Python 的 Docker SDK 和 Docker 守护程序支持的最新 API 版本。 如果未在任务中指定该值,则将使用环境变量 默认值: |
|
通过提供 CA 证书文件的路径,在执行服务器验证时使用 CA 证书。 如果未在任务中指定该值,并且设置了环境变量 此选项称为 |
|
客户端 TLS 证书文件的路径。 如果未在任务中指定该值,并且设置了环境变量 |
|
客户端 TLS 密钥文件的路径。 如果未在任务中指定该值,并且设置了环境变量 |
|
调试模式 选项
|
|
用于连接 Docker API 的 URL 或 Unix 套接字路径。要连接到远程主机,请提供 TCP 连接字符串。例如, 如果任务中未指定该值,则将使用环境变量 默认值: |
|
是否列出 swarm 节点。 选项
|
|
是否列出 swarm 服务。 选项
|
|
是否列出容器。 选项
|
|
通过使用 TLS 来保护与 API 的连接,而不验证 Docker 主机服务器的真实性。请注意,如果 如果任务中未指定该值,则将使用环境变量 选项
|
|
在验证 Docker 主机服务器的真实性时,提供服务器的预期名称。 如果任务中未指定该值,则将使用环境变量 请注意,此选项在旧版本中的默认值为 注意: 对于 Docker SDK for Python 7.0.0+,不再支持此选项。使用 Docker SDK for Python 7.0.0 或更新版本指定它将导致错误。 |
|
是否检索 swarm 解锁密钥。 选项
|
|
对于 SSH 传输,请使用 需要 Docker SDK for Python 4.4.0 或更高版本。 选项
|
|
通过使用 TLS 并验证 Docker 主机服务器的真实性来保护与 API 的连接。 如果任务中未指定该值,则将使用环境变量 选项
|
|
当设置为 有关详细信息,请参阅您的 Docker API 版本的文档,网址为 https://docs.docker.net.cn/engine/api/。 此模块中的详细输出仅包含此信息模块为每种类型的对象返回的信息的子集。 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
操作组: community.docker.docker, docker |
在 |
|
支持: 完全 此操作不会修改状态。 |
可以在 |
|
支持: N/A 此操作不会修改状态。 |
当处于差异模式时,将返回有关已更改(或可能需要在 |
说明
注意
通过为每个任务提供参数或定义环境变量来连接到 Docker 守护程序。您可以定义
DOCKER_HOST
、DOCKER_TLS_HOSTNAME
、DOCKER_API_VERSION
、DOCKER_CERT_PATH
、DOCKER_TLS
、DOCKER_TLS_VERIFY
和DOCKER_TIMEOUT
。如果您使用的是 docker machine,请运行产品附带的脚本,该脚本会设置环境。它将为您设置这些变量。有关更多详细信息,请参阅 https://docs.docker.net.cn/machine/reference/env/。当使用 TLS 连接到 Docker 守护程序时,您可能需要安装其他 Python 包。对于 Python 版 Docker SDK 2.4 或更高版本,可以通过使用 ansible.builtin.pip 安装
docker[tls]
来完成。请注意,Python 版 Docker SDK 只允许为极少数函数指定 Docker 配置的路径。一般来说,如果未指定
DOCKER_CONFIG
环境变量,它将使用$HOME/.docker/config.json
,否则将使用$DOCKER_CONFIG/config.json
。此模块使用 Python 版 Docker SDK 与 Docker 守护程序通信。
示例
- name: Get info on Docker Swarm
community.docker.docker_swarm_info:
ignore_errors: true
register: result
- name: Inform about basic flags
ansible.builtin.debug:
msg: |
Was able to talk to docker daemon: {{ result.can_talk_to_docker }}
Docker in Swarm mode: {{ result.docker_swarm_active }}
This is a Manager node: {{ result.docker_swarm_manager }}
- name: Get info on Docker Swarm and list of registered nodes
community.docker.docker_swarm_info:
nodes: true
register: result
- name: Get info on Docker Swarm and extended list of registered nodes
community.docker.docker_swarm_info:
nodes: true
verbose_output: true
register: result
- name: Get info on Docker Swarm and filtered list of registered nodes
community.docker.docker_swarm_info:
nodes: true
nodes_filters:
name: mynode
register: result
- name: Show swarm facts
ansible.builtin.debug:
var: result.swarm_facts
- name: Get the swarm unlock key
community.docker.docker_swarm_info:
unlock_key: true
register: result
- name: Print swarm unlock key
ansible.builtin.debug:
var: result.swarm_unlock_key
返回值
常见返回值记录在此处,以下是此模块特有的字段
键 |
描述 |
---|---|
如果模块可以与 docker 守护程序通信,则为 返回: 成功和错误时均返回 |
|
如果模块可以与 docker 守护程序通信,并且 docker 守护程序处于 Swarm 模式,则为 返回: 成功和错误时均返回 |
|
如果模块可以与 docker 守护程序通信,docker 守护程序处于 Swarm 模式,并且当前节点是管理节点,则为 仅当此值为 返回: 成功和错误时均返回 |
|
包含每个卷的基本信息的字典对象列表。键与 返回: 当 |
|
包含关于每个节点基本信息的字典对象列表。键值与 返回: 当 |
|
表示 Docker Swarm 集群基本状态的事实信息。 包含连接到 Swarm 的令牌。 返回: 总是 |
|
包含解锁 swarm 所需的密钥。 返回: 当 |
|
包含关于每个卷基本信息的字典对象列表。键值与 返回: 当 |