如何将Ansible中的变量循环到模板中以创建多个虚拟主机? (注意:Ansible文档不适合我)。
如果我将所有变量都移到剧本中,那就会失去去耦的目的。
但是,如果我必须执行上述操作,我仍然不确定如何将dict[key].value
应用于with_items
循环到模板中。这是我的来源:
/vars.yml
apache_vhosts:
happy:
ssl: true
server_name: happy.com
directory_name: happy
pappy:
ssl: false
server_name: pappy.com
directory_name: pappy
/roles/apache2/tasks/main.yml
- name: make projects vhost
template: src=projects.conf.j2
dest=/etc/apache2/sites-available/projects.conf
owner=root
group=root
with_items:
apache_vhosts
/roles/apache2/templates/vhost.j2
<VirtualHost *:80>
DirectoryIndex index.php
DocumentRoot {{ apache_vhost_folder }}/{{ directory_name}}
...
我不确定这是如何运作的。我有dict
而不是list
(如果我可以列出一个更容易的列表),但我也不确定如何在{{1}中获得index
}或dict
。
任何建议都将不胜感激!
答案 0 :(得分:1)
当您使用循环(with_items
)时,每个项目都将以item
的形式提供。这也将在您的模板中提供。然后,您可以像这样访问它:
{{ item["directory_name"] }}