2016-12-02 55 views
2

相同的角色我有我想运行不同的var文件多次的角色,我目前做如下:Ansible运行具有不同的var文件多次包含

- hosts: localhost 
    pre_tasks: 
     include_vars: "vars/vars1.yml" 
    roles: 
    - my_role 

- hosts: localhost 
    pre_tasks: 
     include_vars: "vars/vars2.yml" 
    roles: 
    - my_role 

有没有少样板的方式来做到这一点?我知道它是possible to parameterise roles,但我无法找到任何有关多次运行角色并每次调用不同include_vars的文档。

回答

1

我想要做类似的东西了一段时间后,我最后不得不在我的库存两组

[group1] 
localhost1 

[group2] 
localhost2 

,然后在group_vars我有不同的值。你的情况,这将是

# file: group_vars/group1/main.yml 
include_file: vars/vars1.yml 

# file: group_vars/group2/main.yml 
include_file: vars/vars2.yml 

然后,你可以修改你的剧本,以这样的

- hosts: all 
    pre_tasks: 
     include_vars: "{{ include_file }}" 
    roles: 
    - my_role 

最后,执行你的剧本两组

ansible-playbook pb.yml -l group1,group2 

,它应该照顾两个instalations

相关问题