我正在整理一个旨在构建网络服务器的Ansible Playbook。但是我在尝试使用with_fileglob
时遇到困难,因为Ansible一直在报告它正在跳过nginx vhost文件的副本。
我的脚本如下所示:
- name: Nginx | Copy vhost files
copy: src={{ item }} dest=/etc/nginx/sites-available owner=root group=root mode=600
with_fileglob:
- "{{ templates_dir }}/nginx/sites-available/*"
notify
- nginx-restart:
{{ templates }}
已在其他地方定义为 roles / common / templates 。在这个目录中,我有一个名为 webserver1 的文件,我希望Ansible将复制到/etc/nginx/sites-available/
我发现其他人在讨论这个问题,但没有任何回复帮我解决了这个问题。为什么Ansible会跳过文件?
编辑:我应该指出我想要使用with_fileglob
(而不是直接复制),因为我想在将来迭代其他虚拟主机。
答案 0 :(得分:15)
查看http://docs.ansible.com/playbooks_loops.html#looping-over-fileglobs,注1:
在角色中使用带有with_fileglob的相对路径时,Ansible会解析相对于角色//文件目录的路径。
因此,要访问模板目录中的文件,您可以使用 ../ templates
启动相对路径