community.docker.docker_config 模块 – 管理 Docker 配置。
注意
此模块是 community.docker 集合 (版本 4.1.0) 的一部分。
如果您使用的是 ansible 软件包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用: ansible-galaxy collection install community.docker。您需要其他需求才能使用此模块,请参阅 需求 以了解详情。
要在 playbook 中使用它,请指定: community.docker.docker_config。
概要
- 在 Swarm 环境中创建和删除 Docker 配置。类似于 - docker config create和- docker config rm。
- 向新配置的元数据中添加“ansible_key”,这是一个加密的哈希数据表示,然后在以后的运行中用于测试配置是否已更改。如果不存在“ansible_key”,则除非设置了 - force选项,否则不会更新配置。
- 配置的更新是通过删除配置并重新创建它来执行的。 
需求
执行此模块的主机需要以下需求。
- Docker API >= 1.30 
- Python 的 Docker SDK:请注意,docker-py Python 模块已被 docker 取代(请参阅 此处 以了解详情)。此模块*不*支持 docker-py。 
- Python 的 Docker SDK >= 2.6.0 
- Python >= 2.7 
参数
| 参数 | 注释 | 
|---|---|
| Docker 主机上运行的 Docker API 的版本。 默认为 Python 的 Docker SDK 和 docker 守护程序支持的最新 API 版本。 如果任务中未指定此值,则将使用环境变量  默认值:  | |
| 通过提供 CA 证书文件的路径来执行服务器验证时使用 CA 证书。 如果任务中未指定此值并且设置了环境变量  此选项以前称为  | |
| 客户端 TLS 证书文件的路径。 如果任务中未指定值且环境变量 | |
| 客户端 TLS 密钥文件的路径。 如果任务中未指定值且环境变量 | |
| 配置的值。 与 | |
| 目标上读取配置的文件。 与 | |
| 调试模式 选项 
 | |
| 用于连接到 Docker API 的 URL 或 Unix 套接字路径。要连接到远程主机,请提供 TCP 连接字符串。例如, 如果任务中未指定值,则将使用环境变量 默认值:  | |
| 键值元数据的映射,其中 如果提供新的元数据或修改现有元数据,则配置将通过删除它并重新创建它来更新。 | |
| 配置的名称。 | |
| 如果设置为 向托管的配置添加包含版本号的标签,名称为 选项 
 | |
| 如果配置应该存在,则设置为 选项 
 | |
| 通过使用 TLS 安全连接到 API,而无需验证 Docker 主机服务器的真实性。请注意,如果 如果任务中未指定值,则将使用环境变量 选项 
 | |
| 验证 Docker 主机服务器的真实性时,请提供服务器的预期名称。 如果任务中未指定值,则将使用环境变量 请注意,此选项在较旧的版本中具有默认值 注意:此选项不再支持 Docker SDK for Python 7.0.0+。使用 Docker SDK for Python 7.0.0 或更高版本指定它会导致错误。 | |
| 对于 SSH 传输,请使用 需要 Docker SDK for Python 4.4.0 或更高版本。 选项 
 | |
| 通过使用 TLS 并验证 Docker 主机服务器的真实性来保护与 API 的连接。 如果任务中未指定值,则将使用环境变量 选项 
 | |
属性
| 属性 | 支持 | 描述 | 
|---|---|---|
| 动作组: community.docker.docker, docker | 在 | |
| 支持:完全支持 | 可以在 | |
| 支持:不支持 | 在差异模式下,将返回有关已更改内容(或可能需要在 | 
备注
注意
- 通过为每个任务提供参数或定义环境变量来连接到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包。对于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: Create config foo (from a file on the control machine)
  community.docker.docker_config:
    name: foo
    # If the file is JSON or binary, Ansible might modify it (because
    # it is first decoded and later re-encoded). Base64-encoding the
    # file directly after reading it prevents this to happen.
    data: "{{ lookup('file', '/path/to/config/file') | b64encode }}"
    data_is_b64: true
    state: present
- name: Create config foo (from a file on the target machine)
  community.docker.docker_config:
    name: foo
    data_src: /path/to/config/file
    state: present
- name: Change the config data
  community.docker.docker_config:
    name: foo
    data: Goodnight everyone!
    labels:
      bar: baz
      one: '1'
    state: present
- name: Add a new label
  community.docker.docker_config:
    name: foo
    data: Goodnight everyone!
    labels:
      bar: baz
      one: '1'
      # Adding a new label will cause a remove/create of the config
      two: '2'
    state: present
- name: No change
  community.docker.docker_config:
    name: foo
    data: Goodnight everyone!
    labels:
      bar: baz
      one: '1'
      # Even though 'two' is missing, there is no change to the existing config
    state: present
- name: Update an existing label
  community.docker.docker_config:
    name: foo
    data: Goodnight everyone!
    labels:
      bar: monkey   # Changing a label will cause a remove/create of the config
      one: '1'
    state: present
- name: Force the (re-)creation of the config
  community.docker.docker_config:
    name: foo
    data: Goodnight everyone!
    force: true
    state: present
- name: Remove config foo
  community.docker.docker_config:
    name: foo
    state: absent
返回值
常见的返回值已在此处记录,以下是此模块特有的字段
| 键 | 描述 | 
|---|---|
