Ansible - 使用角色中的相同模板创建多个配置文件

时间:2017-07-11 05:50:12

标签: ansible devops ansible-role

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

1 个答案:

答案 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文件。