Ansible多次运行相同的角色,包含不同的vars文件

时间:2016-12-02 14:55:33

标签: ansible

我有一个角色,我想用不同的vars文件多次运行,我目前正在做以下事情:

- 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但我无法在ansible文档中找到关于多次运行角色并且每次调用不同include_vars的内容。

1 个答案:

答案 0 :(得分: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