我有一台Ansible设置的服务器,它运行着许多站点。
我的Ansible任务大致如下:
- name: site nginx config
template: src="nginx-site.conf.j2" dest=/etc/nginx/conf.d/{{item.name}}.conf
owner=root group=root mode=0444
with_items: sites
notify: restart nginx
- name: nginx conf
template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf
owner=root group=root mode=0444
notify: restart nginx
我想使用validate
Ansible模板模块的参数来调用nginx -t
,并确保我的新配置在语法上有效。它适用于主要的nginx.conf:
template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf
owner=root group=root mode=0444
validate="/usr/sbin/nginx -c %s -t"
但这似乎并没有改变站点特定的配置文件。放置validate
特定于站点的模板无效,因为需要将它们包装在http
指令中才能生效。
我该怎么做才能检查这些特定于站点的文件的有效性?