模板中的 Ansible 全局 vars.yml 循环任务
Ansible global vars.yml loop Task in Template
如何将 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
(如果我可以列出它可能会更容易),但我也不确定如何在 [=16] 中获得 index
=] 或 list
.
如有任何建议,我们将不胜感激!
当您使用循环 (with_items
) 时,每个项目都将作为 item
可用。这也将在您的模板中可用。然后您可以像这样访问它:
{{ item["directory_name"] }}
如何将 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
(如果我可以列出它可能会更容易),但我也不确定如何在 [=16] 中获得 index
=] 或 list
.
如有任何建议,我们将不胜感激!
当您使用循环 (with_items
) 时,每个项目都将作为 item
可用。这也将在您的模板中可用。然后您可以像这样访问它:
{{ item["directory_name"] }}