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。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在剧本中使用它,请指定:community.docker.docker_swarm_info。
概要
- 检索有关 Docker Swarm 的信息。 
- 返回服务、节点、任务的 Swarm 对象名称列表。 
- 输出取决于 Docker 主机上可用的 API 版本。 
- 必须在 Swarm 管理节点上运行;否则模块将失败并显示错误消息。它确实在错误和成功时都返回布尔标志,指示是否可以与 Docker 守护程序通信,它是否处于 Swarm 模式,以及它是否是 Swarm 管理节点。 
要求
执行此模块的主机需要以下要求。
- Docker API >= 1.25 
- Python 的 Docker SDK:请注意,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 的连接。 如果任务中未指定此值,则将使用环境变量  选项 
 | |
| 当设置为  有关详细信息,请参阅 https://docs.dockerd.com.cn/engine/api/ 上 Docker 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.dockerd.com.cn/machine/reference/env/。
- 当使用 TLS 连接到 Docker 守护程序时,您可能需要安装其他 Python 包。对于 Docker SDK for Python 2.4 或更高版本,可以使用 ansible.builtin.pip 安装 - docker[tls]来完成此操作。
- 请注意,Docker SDK for Python 仅允许为极少数功能指定 Docker 配置的路径。通常,如果未指定 - DOCKER_CONFIG环境变量,它将使用- $HOME/.docker/config.json,否则将使用- $DOCKER_CONFIG/config.json。
- 此模块使用 Docker SDK for Python 与 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所需的密钥。 返回:当 | |
| 包含每个卷的基本信息的字典对象列表。除非 返回:当 | 
