【发布时间】:2020-11-24 16:31:39
【问题描述】:
如何将注册输出从剧本传递到 docker_compose 任务?在 playbook 中,我首先创建了一个临时目录,并注册了结果:
- 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 }}"
到目前为止,这可以运行撰写文件并启动容器。但是,在撰写文件本身中,我需要引用卷部分中的 tempdir,以将其挂载到容器中。
我在撰写文件中尝试过这个,显然不起作用:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- "{{ tempdir.path }}/certs/acme.json:/acme.json"
这不仅限于传递 tempdir,因为我可能还需要将其他变量传递给 compose 文件。例如。来自库存文件。
注意。我对 Ansible 很陌生,如果我混淆了任何术语,请原谅我。
【问题讨论】: