我在Ansible脚本中使用以下任务将所有文件从本地数据文件夹复制到服务器:
- name: copy basic files to folder
copy:
src: "{{ item }}"
dest: ~/data/
mode: 755
owner: "www-data"
group: "www-data"
with_fileglob:
- ../files/data/*
这样可以正常工作,除了它跳过隐藏文件(例如.htaccess
)。
有人知道如何让with_fileglob
也包含隐藏文件吗?
答案 0 :(得分:7)
Ansible uses Python' s glob。
如果目录包含以
.
开头的文件,则默认情况下不会匹配。>>> import glob >>> glob.glob('*.gif') ['card.gif'] >>> glob.glob('.c*') ['.card.gif']
将.*
明确添加到模式列表中。
答案 1 :(得分:6)
好的,我自己找到了答案。我发现with_fileglob
只是调用了python glob.glob()函数。所以经过一些小事,我发现只需要添加一个带有.*
的fileglob:
- name: copy basic files to folder
copy:
src: "{{ item }}"
dest: ~/data/
mode: 755
owner: "www-data"
group: "www-data"
with_fileglob:
- ../files/data/*
- ../files/data/.*