0

我发现了一个类似的问题: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
4

1 回答 1

6

查看带有参数的include_role模块:vars_from

tasks:
  - include_role:
      role: nginx-install
      vars_from: "{{ item }}"
    with_items:
      - vars_file1
      - vars_file2

并且不要使用group_vars目录来存储任意 vars 文件,它旨在存储主机组的 vars 文件。

于 2017-07-11T06:19:13.443 回答