使用Ansible复制文件夹内容

时间:2017-02-16 16:15:17

标签: ansible

由于一些奇怪的原因,我遇到了一个简单任务的问题,即将文件夹myfiles的内容(其中的文件很少)复制到dist/myfiles位置。任务看起来像这样:

name: Deploy config files like there is no tomorrow
copy:
  src: "{{ item }}"
  dest: "/home/{{ ansible_user_id }}/dist/{{ item }}"
with_items:
  - 'config'
  - 'myfiles/'
myfiles下存在

dist文件夹,config文件被复制到dist文件夹。

这在Ansible中是否可行,或者我应该单独复制每个文件?我完全错了吗?

1 个答案:

答案 0 :(得分:5)

您的任务同时复制:config文件和Debian和CentOS上的myfiles目标。

如果由于某种原因您遇到问题,可以查看Looping over Fileglobs

您需要将任务分成两部分,第二部分看起来像:

- name: Deploy multiple config files
  copy:
    src: "{{ item }}"
    dest: "/home/{{ ansible_user_id }}/dist/myfiles/{{ item | basename }}"
  with_fileglob:
    - /path/to/myfiles/*

对于递归副本,请检查this question on SeverFault

或者,您可以使用synchronize module,但在使用become时要特别注意。请参阅this question on SuperUser