出于一些奇怪的原因,我遇到了一个简单的任务,即将文件夹的内容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下的文件夹中存在dist和config文件复制到dist文件夹中.
这在Ansible中是否可行,或者我应该单独复制每个文件?我完全错了吗?
您的任务同时复制: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上查看此问题.