Ansible with_fileglob正在跳过

Dub*_*bby 11 ansible

我正在整理一个旨在构建网络服务器的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:
Run Code Online (Sandbox Code Playgroud)

{{ templates }}已在别处定义为角色/公共/模板.在这个目录中,我有一个名为webserver1的文件,我希望Ansible可以复制到该文件中/etc/nginx/sites-available/

我发现其他人在讨论这个问题,但没有任何回复帮助我解决这个问题.为什么Ansible会跳过文件?

编辑:我应该指出我想使用with_fileglob(而不是直接复制),因为我希望将来迭代其他虚拟主机.

小智 15

请查看http://docs.ansible.com/playbooks_loops.html#looping-over-fileglobs,注1:

在角色中使用带有with_fileglob的相对路径时,Ansible会解析相对于角色// files目录的路径.

因此,要访问templates目录中的文件,可以使用../templates启动相对路径

  • 有一些神奇的变量,比如`playbook_dir`和`role_path`.使用它们而不是"../"会更好,因为角色经常可以安装或保存在其他地方.不要只依赖一个项目的结构 (3认同)