Ansible - создание нескольких файлов конфигурации с использованием одного и того же шаблона в роли

Я нашел похожий вопрос: создание несколько раз одной и той же роли, но с разными элементами, но я не знаю, как использовать ее со структурой каталогов group_vars.

Мой вопрос

Как я могу использовать роль с шаблоном внутри, чтобы создать несколько файлов конфигурации с разными именами и значениями? Я также использую каталог group_vars, который существует на том же уровне, что и книга воспроизведения, которую я запускаю с хостами, на которых он работает.

Вот мой текущий образец книги

---
- 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 ответ

Решение

Посмотрите на include_role модуль с vars_from параметр:

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

И не использовать group_vars каталог для хранения произвольных файлов vars, предназначен для хранения файлов vars для групп хостов.

Другие вопросы по тегам