我正在尝试为数组中找到的每个项目动态创建一个新的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 }}'
这很好用,除了模板无权访问循环数据。 (站点)我需要了解站点,以便可以正确生成模板。
答案 0 :(得分:0)
我能够使用{{ 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;
}