首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将变量从Ansible攻略传递到docker_compose任务

将变量从Ansible攻略传递到docker_compose任务
EN

Stack Overflow用户
提问于 2020-11-24 16:05:58
回答 1查看 538关注 0票数 2

如何将实战手册中的注册输出传递到docker_compose任务?在攻略中,我首先创建一个临时目录,并注册结果:

代码语言:javascript
复制
- name: Create temporary deployment directory
  tempfile:
    state: directory
     prefix: test.
  register: tempdir

在攻略的后面,我有一个docker_compose任务,如下所示:

代码语言:javascript
复制
- name: Create and start services
  docker_compose:
    project_name: test
    project_src: "{{ tempdir.path }}"

到目前为止,这是有效的,因为合成文件是运行的,容器也启动了。但是,在组成文件本身中,我需要引用volumes部分中的tempdir,以便将其挂载到容器中。

我在compose文件中尝试了这一点,显然不起作用:

代码语言:javascript
复制
volumes:
  - /var/run/docker.sock:/var/run/docker.sock
  - "{{ tempdir.path }}/certs/acme.json:/acme.json"

这并不局限于传递tempdir,因为我可能还需要将其他变量传递给compose文件。例如从清单文件中。

注意:我是Ansible的新手,所以如果我混淆了任何术语,请原谅。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-24 16:31:39

您可以创建一个docker-compose模板文件,并使用ansible中的template模块,将其中的变量复制并替换到您的目的地。

类似于下面的内容:

代码语言:javascript
复制
 - name: set docker-compose
   template:
      src: docker-compose.yml.j2
      dest: "{{ your_compose_path }}"

在docker-compose.yml.j2中使用注册变量:

代码语言:javascript
复制
 volumes:
   - /var/run/docker.sock:/var/run/docker.sock
   - "{{ tempdir.path }}/certs/acme.json:/acme.json"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64982421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档