我发现了一个类似的问题:Creating multiple times the same role, but with different items 但我不知道如何将它与group_vars目录结构一起使用。
如何使用带有模板的角色来创建具有不同名称和值的多个配置文件?我也在使用group_vars目录,该目录与我运行的主机运行的playbook位于同一级别。
这是我目前的样本手册
---
- hosts: emea-stg-web
vars_files:
- group_vars/ssh_user.yml
remote_user: "{{ ssh_user }}"
become_user: root
roles:
- nginx-install
- php5.6-install
如何让角色中的每个“项目”使用不同的变量值。例如变量“name”可以在迭代时使用[“test 1”,“test 2”,“test 3”]?我可以将这些值存储在文件中吗?
---
- hosts: emea-stg-web
vars_files:
- group_vars/ssh_user.yml
remote_user: "{{ ssh_user }}"
become_user: root
roles:
- nginx-install
with_items:
- test1
- test2
- test3
- php5.6-install
答案 0 :(得分:5)
使用vars_from
参数查看include_role
module:
tasks:
- include_role:
role: nginx-install
vars_from: "{{ item }}"
with_items:
- vars_file1
- vars_file2
不要使用group_vars
目录存储任意vars文件,它旨在存储主机组的vars文件。