我想要启动容器(在任务中)的playbook,如果在变量中提供链接,则只将其链接到另一个容器。例如:
- 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
但当然这不起作用。 (我知道没有值的-
无效〜这只是伪代码)
整个任务实际上要大得多,因为它包含其他指令,所以我真的没有定义2个版本的任务,一个用于从一个链接开始而另一个没有。
答案 0 :(得分:1)
当使用' - '时,表示有一定的价值,所以我有办法避免它。
---
- hosts: localhost
tasks:
- name: Start container
docker_container:
image: centos
name: odoo-server
state: started
expose:
- 8080
links: "{{ var_db_link | default([]) }}"
然后测试它使用
ansible-playbook ha.yml -e var_db_link="redis-master:centos"
ansible-playbook ha.yml
它正常运行!