Ansible在循环中创建模板并访问项

Ansible在循环中创建模板并访问项,ansible,ansible-template,Ansible,Ansible Template,我正在尝试为数组中找到的每个项动态创建一个新的nginx主机。但是,我需要知道循环的细节 - name: 'adding sites to nginx' template: src: 'nginx/template.conf.j2' dest: '/etc/nginx/conf.d/{{ item }}.conf' owner: 'root' group: 'root' mode: 0644 with_items: - '{{ sites

我正在尝试为数组中找到的每个项动态创建一个新的nginx主机。但是,我需要知道循环的细节

- name: 'adding sites to nginx'
  template:
    src: 'nginx/template.conf.j2'
    dest: '/etc/nginx/conf.d/{{ item }}.conf'
    owner: 'root'
    group: 'root'
    mode: 0644
  with_items:
    - '{{ sites }}'

除了模板没有访问循环数据的权限外,这一点非常有效。(站点)我需要知道站点,以便正确生成模板。

我能够通过使用
{{item}
而不是
{sites}
获得访问权限

- name: 'adding sites to nginx'
  template:
    src: 'nginx/template.conf.j2'
    dest: '/etc/nginx/conf.d/{{ item }}.conf'
    owner: 'root'
    group: 'root'
    mode: 0644
  with_items:
    - '{{ sites }}'
然后在
template.conf.j2
中,您可以通过指向
{{item}}

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name {{ item }}.{{ domain }};
  set $base {{ app_path }}/{{ item }};
  root $base/public;

  # SSL
  ssl_certificate /etc/letsencrypt/live/{{ domain }}/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/{{ domain }}/privkey.pem;
}