如何使Ansible with_fileglob包含隐藏文件?

时间:2017-09-05 12:55:38

标签: ansible hidden-files file-globs

我在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也包含隐藏文件吗?

2 个答案:

答案 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/.*