如何将实战手册中的注册输出传递到docker_compose任务?在攻略中,我首先创建一个临时目录,并注册结果:
- name: Create temporary deployment directory
tempfile:
state: directory
prefix: test.
register: tempdir在攻略的后面,我有一个docker_compose任务,如下所示:
- name: Create and start services
docker_compose:
project_name: test
project_src: "{{ tempdir.path }}"到目前为止,这是有效的,因为合成文件是运行的,容器也启动了。但是,在组成文件本身中,我需要引用volumes部分中的tempdir,以便将其挂载到容器中。
我在compose文件中尝试了这一点,显然不起作用:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- "{{ tempdir.path }}/certs/acme.json:/acme.json"这并不局限于传递tempdir,因为我可能还需要将其他变量传递给compose文件。例如从清单文件中。
注意:我是Ansible的新手,所以如果我混淆了任何术语,请原谅。
发布于 2020-11-24 16:31:39
您可以创建一个docker-compose模板文件,并使用ansible中的template模块,将其中的变量复制并替换到您的目的地。
类似于下面的内容:
- name: set docker-compose
template:
src: docker-compose.yml.j2
dest: "{{ your_compose_path }}"在docker-compose.yml.j2中使用注册变量:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- "{{ tempdir.path }}/certs/acme.json:/acme.json"https://stackoverflow.com/questions/64982421
复制相似问题