如何在包含模板variables的数组上循环遍历?

我正在使用Ansible为Web服务器设置自动configuration过程。 为此,我有一个包含虚拟主机的字典的数组来设置:

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

我准备了一些通用的nginx虚拟主机configuration模板

 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 

这些任务按预期遍历vhostvariables。 不幸的是,Ansible不会将迭代器中的当前项传递给模板,而是模板可以访问所有当前有效的variables。

有什么办法将当前项目从迭代器传递到模板?

原来上面的代码工作绝对完美。 在我的变量YAML文件中还有另一个问题。