Как перебирать массив, содержащий переменные шаблона, с помощью ansible?

я настраиваю автоматический процесс подготовки для веб-сервера с помощью Ansible. Для этого у меня есть массив, содержащий словари, определяемые для установки:

vhosts:
  -
    name: 'vhost1'
    server_name: 'domain1.com'
  -
    name: 'vhost2'
    server_name: 'domain2.com'

Я подготовил шаблон с некоторой общей конфигурацией nginx vhost:

server {
    listen 80;
    server_name {{ item.server_name }};

    root    /home/www/{{ item.name }}/htdocs;
    index   index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
}

наконец, я использую следующую задачу для копирования подготовленного шаблона на целевой хост:

- name: Setup vhosts
  template: src=vhost.j2 dest=/etc/nginx/sites-available/{{ item.name }}
  with_items: vhosts

задачи повторяются над vhost переменной, как и предполагалось. К сожалению, Ansible не проходит текущий элемент от итератора к шаблону, вместо этого шаблон имеет доступ ко всем действующим переменным.

есть ли способ, чтобы передать текущий элемент из итератора в шаблон?

1 ответов


оказывается, что приведенный выше код работает абсолютно идеально. в моем файле переменных YAML была еще одна проблема.