如何在链接var定义时使用Ansible中的Docker链接

我想要的Playbook将启动一个容器(在一个任务),只有链接到另一个容器,如果链接是在一个variables中提供的。 例如:

- name: Start container docker_container: image: somerepo/app-server:{{ var_tag }} name: odoo-server state: started log_opt: "tag=app-server-{{ var_tag }}" expose: - 8080 links: - "{{ var_db_link }}" when: var_db_link is defined 

但是,这当然不起作用。 (我知道-没有价值是无效的〜这只是伪代码)

整个任务实际上是相当大一点,因为它包括其他指令,所以我真的不需要定义任务的两个版本,一个是从一个链接开始,另一个没有。

当使用' – '时,这意味着有一定的价值,所以我有办法避免它。

 --- - hosts: localhost tasks: - name: Start container docker_container: image: centos name: odoo-server state: started expose: - 8080 links: "{{ var_db_link | default([]) }}" 

然后testing它的使用

 ansible-playbook ha.yml -e var_db_link="redis-master:centos" ansible-playbook ha.yml 

它正常运行!