使用Ansible复制文件夹内容

Max*_*huk 4 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/'
Run Code Online (Sandbox Code Playgroud)

myfiles下的文件夹中存在distconfig文件复制到dist文件夹中.

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

tec*_*raf 6

您的任务同时复制:config文件和myfilesDebian和CentOS目标正确.


如果由于某种原因你有问题,你可能会看看在Fileglobs循环.

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

- name: Deploy multiple config files
  copy:
    src: "{{ item }}"
    dest: "/home/{{ ansible_user_id }}/dist/myfiles/{{ item | basename }}"
  with_fileglob:
    - /path/to/myfiles/*
Run Code Online (Sandbox Code Playgroud)

对于递归副本,请在SeverFault上查看此问题


或者,您可以使用该synchronize模块,但在使用时要特别注意become.在SuperUser上查看此问题.