community.docker.docker_stack 模块 – docker stack 模块

注意

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

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

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

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

概要

  • 使用目标节点上的 docker stack 命令管理 docker stack(参见示例)。

要求

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

  • Docker 命令行工具 docker

  • jsondiff

  • pyyaml

参数

参数

注释

absent_retries

整数

如果大于 0 并且 state=absent,则模块将最多重试 absent_retries 次以删除堆栈,直到所有资源都被有效删除。如果最后一次尝试仍然报告堆栈未完全删除,则模块将失败。

默认值: 0

absent_retries_interval

整数

连续 absent_retries 之间的间隔(秒)。

默认值: 1

api_version

别名:docker_api_version

字符串

在 community.docker 3.6.0 中添加

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

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

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

默认值: "auto"

ca_path

别名:ca_cert, tls_ca_cert, cacert_path

路径

在 community.docker 3.6.0 中添加

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

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

cli_context

字符串

在 community.docker 3.6.0 中添加

要使用的 Docker CLI 上下文。

docker_host 互斥。

client_cert

别名:tls_client_cert, cert_path

路径

在 community.docker 3.6.0 中添加

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

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

client_key

别名: tls_client_key, key_path

路径

在 community.docker 3.6.0 中添加

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

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

compose

列表 / 元素=任意

Compose定义列表。任何元素都可以是字符串,引用目标主机上compose文件的路径,也可以是嵌套为字典的compose文件的YAML内容。

默认值: []

detach

布尔值

在community.docker 4.1.0中添加

如果为false,则--detach=false选项将添加到docker stack deploy命令中,允许Docker在退出之前等待任务收敛。

如果为true(默认值),Docker将立即退出,而不是等待任务收敛。

选项

  • false

  • true ← (默认)

docker_cli

路径

在 community.docker 3.6.0 中添加

Docker CLI 的路径。如果未提供,将在PATH中搜索 Docker CLI。

docker_host

别名: docker_url

字符串

在 community.docker 3.6.0 中添加

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

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

cli_context互斥。如果既未提供docker_host也未提供cli_context,则使用值unix:///var/run/docker.sock

name

字符串 / 必需

堆栈名称

prune

布尔值

如果为true,则会将--prune选项添加到docker stack deploy命令中。这将使docker删除当前堆栈定义中不存在的服务。

选项

  • false ← (默认)

  • true

resolve_image

字符串

如果设置,则会将--resolve-image选项添加到docker stack deploy命令中。这将使docker查询注册表以解析镜像摘要和支持的平台。如果未设置,docker 默认使用“always”。

选项

  • "always"

  • "changed"

  • "never"

state

字符串

服务状态。

选项

  • "present" ← (默认)

  • "absent"

tls

布尔值

在 community.docker 3.6.0 中添加

通过使用TLS安全地连接到API,而无需验证Docker主机服务器的真实性。请注意,如果validate_certs也设置为true,则它将优先。

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

选项

  • false ← (默认)

  • true

tls_hostname

字符串

在 community.docker 3.6.0 中添加

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

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

validate_certs

别名: tls_verify

布尔值

在 community.docker 3.6.0 中添加

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

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

选项

  • false ← (默认)

  • true

with_registry_auth

布尔值

如果为true,则会将--with-registry-auth选项添加到docker stack deploy命令中。这将使docker将注册表身份验证详细信息发送到Swarm代理。

选项

  • false ← (默认)

  • true

属性

属性

支持

描述

action_group

动作组: community.docker.docker, docker

在 community.docker 3.6.0 中添加

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

check_mode

支持: 不支持

可以在check_mode下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持: 不支持

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

备注

注意

示例

- name: Deploy stack from a compose file
  community.docker.docker_stack:
    state: present
    name: mystack
    compose:
      - /opt/docker-compose.yml

- name: Deploy stack from base compose file and override the web service
  community.docker.docker_stack:
    state: present
    name: mystack
    compose:
      - /opt/docker-compose.yml
      - version: '3'
        services:
          web:
            image: nginx:latest
            environment:
              ENVVAR: envvar

- name: Remove stack
  community.docker.docker_stack:
    name: mystack
    state: absent

返回值

常用的返回值已在此处记录此处,以下是此模块独有的字段

描述

stack_spec_diff

字典

包含应用新堆栈定义前后堆栈服务的“Spec”字段之间差异的字典。

返回: 发生更改时

示例: "\"stack_spec_diff\": {'test_stack_test_service': {u'TaskTemplate': {u'ContainerSpec': {delete: [u'Env']}}}}\n"

作者

  • Dario Zanzico (@dariko)