community.docker.docker_host_info 模块 – 获取有关 Docker 主机的事实和列出服务对象。

注意

此模块是 community.docker 集合(版本 4.1.0)的一部分。

如果您正在使用 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.docker。您需要其他要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:community.docker.docker_host_info

概要

  • 获取有关 Docker 主机的事实。

  • 本质上返回 docker system info 的输出。

  • 该模块还允许列出容器、镜像、网络和卷的对象名称。它还允许查询磁盘使用情况的信息。

  • 输出因 Docker 守护程序的 API 版本而异。

  • 如果无法联系 Docker 守护程序或不满足 API 版本要求,则该模块将失败。

要求

在执行此模块的主机上需要以下要求。

  • Docker API >= 1.25

  • backports.ssl_match_hostname(在 Python 2 上使用 TLS 时)

  • paramiko(在使用 SSH 和 use_ssh_client=false 时)

  • pyOpenSSL(在使用 TLS 时)

  • pywin32(在 Windows 32 上使用命名管道时)

  • 请求

参数

参数

注释

api_version

别名:docker_api_version

字符串

在 Docker 主机上运行的 Docker API 的版本。

默认为此集合和 Docker 守护程序支持的最新 API 版本。

如果未在任务中指定该值,则将使用环境变量 DOCKER_API_VERSION 的值。如果未设置环境变量,将使用默认值。

默认值: "auto"

ca_path

别名:ca_cert、tls_ca_cert、cacert_path

路径

通过提供 CA 证书文件的路径,在执行服务器验证时使用 CA 证书。

如果未在任务中指定该值,并且设置了环境变量 DOCKER_CERT_PATH,则将使用环境变量 DOCKER_CERT_PATH 中指定的目录中的文件 ca.pem

此选项称为 ca_cert,并在 community.docker 3.6.0 中重命名为 ca_path。旧名称已添加为别名,仍可使用。

client_cert

别名:tls_client_cert、cert_path

路径

客户端 TLS 证书文件的路径。

如果未在任务中指定该值,并且设置了环境变量 DOCKER_CERT_PATH,则将使用环境变量 DOCKER_CERT_PATH 中指定的目录中的文件 cert.pem

client_key

别名:tls_client_key、key_path

路径

客户端 TLS 密钥文件的路径。

如果未在任务中指定该值,并且设置了环境变量 DOCKER_CERT_PATH,则将使用环境变量 DOCKER_CERT_PATH 中指定的目录中的文件 key.pem

容器

布尔值

是否列出容器。

选项

  • false ← (默认)

  • true

containers_all

布尔值

在 community.docker 3.4.0 中添加

默认情况下,仅返回正在运行的容器。

这对应于 docker container list--all 选项。

选项

  • false ← (默认)

  • true

containers_filters

字典

用于选择要列出的容器的过滤器值字典。

例如,until: 24h

label 是一种特殊的过滤器,它可以是一个字符串 <key>,当标签存在时匹配;一个字符串 <key>=<value>,当标签具有特定值时匹配;或者一个字符串列表 <key>/<key>=<value

有关可能的过滤器的更多信息,请参阅docker 文档

debug

布尔值

调试模式

选项

  • false ← (默认)

  • true

disk_usage

布尔值

所有 Docker 层使用的磁盘空间摘要信息。

输出是镜像、卷、容器和构建缓存的总和。

选项

  • false ← (默认)

  • true

docker_host

别名: docker_url

字符串

用于连接到 Docker API 的 URL 或 Unix 套接字路径。要连接到远程主机,请提供 TCP 连接字符串。例如,tcp://192.0.2.23:2376。如果使用 TLS 加密连接,模块会自动将连接 URL 中的 tcp 替换为 https

如果任务中未指定该值,则将使用环境变量 DOCKER_HOST 的值。如果未设置环境变量,则将使用默认值。

默认值: "unix:///var/run/docker.sock"

images

布尔值

是否列出镜像。

选项

  • false ← (默认)

  • true

images_filters

字典

用于选择要列出的镜像的过滤器值字典。

例如,dangling: true

label 是一种特殊的过滤器,它可以是一个字符串 <key>,当标签存在时匹配;一个字符串 <key>=<value>,当标签具有特定值时匹配;或者一个字符串列表 <key>/<key>=<value

有关可能的过滤器的更多信息,请参阅docker 文档

networks

布尔值

是否列出网络。

选项

  • false ← (默认)

  • true

networks_filters

字典

用于选择要列出的网络的过滤器值字典。

label 是一种特殊的过滤器,它可以是一个字符串 <key>,当标签存在时匹配;一个字符串 <key>=<value>,当标签具有特定值时匹配;或者一个字符串列表 <key>/<key>=<value

有关可能的过滤器的更多信息,请参阅docker 文档

timeout

integer

等待 API 响应的最长时间(以秒为单位)。

如果任务中未指定该值,则将使用环境变量 DOCKER_TIMEOUT 的值。如果未设置环境变量,则将使用默认值。

默认值: 60

tls

布尔值

通过使用 TLS 而不验证 Docker 主机服务器的真实性来保护与 API 的连接。请注意,如果 validate_certs 也设置为 true,则它将优先。

如果任务中未指定该值,则将使用环境变量 DOCKER_TLS 的值。如果未设置环境变量,则将使用默认值。

选项

  • false ← (默认)

  • true

tls_hostname

字符串

在验证 Docker 主机服务器的真实性时,提供服务器的预期名称。

如果任务中未指定该值,则将使用环境变量 DOCKER_TLS_HOSTNAME 的值。如果未设置环境变量,则将使用默认值。

请注意,此选项在旧版本中具有默认值 localhost。它已在 community.docker 3.0.0 中删除。

use_ssh_client

布尔值

在 community.docker 1.5.0 中添加

对于 SSH 传输,请使用 ssh CLI 工具而不是 paramiko。

选项

  • false ← (默认)

  • true

validate_certs

别名: tls_verify

布尔值

通过使用 TLS 并验证 Docker 主机服务器的真实性来保护与 API 的连接。

如果任务中未指定该值,则将使用环境变量 DOCKER_TLS_VERIFY 的值。如果未设置环境变量,则将使用默认值。

选项

  • false ← (默认)

  • true

verbose_output

布尔值

当设置为 truenetworks, volumes, images, containers, 或 disk_usage 设置为 true 时,输出将包含有关与 API 方法完整输出匹配的对象的详细信息。有关详细信息,请参阅您的 Docker API 版本的文档:https://docs.docker.net.cn/engine/api/

此模块中的详细输出仅包含此模块为每种类型的对象返回的信息的子集。

选项

  • false ← (默认)

  • true

volumes

布尔值

是否列出卷。

选项

  • false ← (默认)

  • true

volumes_filters

字典

用于选择要列出的卷的过滤器值字典。

label 是一种特殊的过滤器,它可以是一个字符串 <key>,当标签存在时匹配;一个字符串 <key>=<value>,当标签具有特定值时匹配;或者一个字符串列表 <key>/<key>=<value

有关可能的过滤器的更多信息,请参阅docker 文档

属性

属性

支持

描述

action_group

操作组: community.docker.docker, docker

module_defaults 中使用 group/dockergroup/community.docker.docker 来为此模块设置默认值。

check_mode

支持: 完整

此操作不会修改状态。

可以在 check_mode 中运行,并返回已更改的状态预测,而无需修改目标。

diff_mode

支持: 不适用

此操作不会修改状态。

在差异模式下,将返回有关已更改内容(或在 check_mode 中可能需要更改的内容)的详细信息。

说明

注意

示例

- name: Get info on docker host
  community.docker.docker_host_info:
  register: result

- name: Get info on docker host and list images
  community.docker.docker_host_info:
    images: true
  register: result

- name: Get info on docker host and list images matching the filter
  community.docker.docker_host_info:
    images: true
    images_filters:
      label: "mylabel"
  register: result

- name: Get info on docker host and verbose list images
  community.docker.docker_host_info:
    images: true
    verbose_output: true
  register: result

- name: Get info on docker host and used disk space
  community.docker.docker_host_info:
    disk_usage: true
  register: result

- name: Get info on docker host and list containers matching the filter
  community.docker.docker_host_info:
    containers: true
    containers_filters:
      label:
        - key1=value1
        - key2=value2
  register: result

- name: Show host information
  ansible.builtin.debug:
    var: result.host_info

返回值

常见返回值记录在此处,以下是此模块特有的字段

描述

can_talk_to_docker

布尔值

如果模块可以与 docker 守护程序通信,则为 true

返回值: 成功和错误时均返回

容器

list / 元素=dictionary

包含每个容器的基本信息的 dict 对象列表。键与 docker container ls 输出匹配,除非 verbose_output=true。请参阅 verbose_output 的说明。

返回值:containers=true

disk_usage

字典

除非 verbose_output=true,否则关于 docker 主机上镜像、容器和卷的摘要磁盘使用情况信息。请参阅 verbose_output 的说明。

返回:disk_usage=true

host_info

字典

表示 Docker 主机基本状态的事实。与 docker system info 输出匹配。

返回: 总是

images

list / 元素=dictionary

包含每个镜像基本信息的字典对象列表。键与 docker image ls 输出匹配,除非 verbose_output=true。请参阅 verbose_output 的描述。

返回:images=true

networks

list / 元素=dictionary

包含每个网络基本信息的字典对象列表。键与 docker network ls 输出匹配,除非 verbose_output=true。请参阅 verbose_output 的描述。

返回:networks=true

volumes

list / 元素=dictionary

包含每个卷基本信息的字典对象列表。键与 docker volume ls 输出匹配,除非 verbose_output=true。请参阅 verbose_output 的描述。

返回:volumes=true

作者

  • Piotr Wojciechowski (@WojciechowskiPiotr)