2017-02-16 69 views
0

由於一些奇怪的原因,我正在將一個簡單的任務複製到dist/myfiles位置,將文件夾myfiles(其中的幾個文件)的內容複製到一個文件夾中。任務是這樣的:在distconfig下的文件用Ansible複製文件夾內容

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

這是可能的Ansible或我應該分別複製每個文件?我完全錯了嗎?

+1

複製模塊複製文件。它支持一些遞歸目錄複製,但不是最好的。如果您需要目錄,則應該嘗試使用http://docs.ansible.com/ansible/synchronize_module.html。注意:它需要機器上的rsync才能工作,在某些發行版中默認情況下未安裝rsync。 – SztupY

回答

3

您的任務會同時複製:config文件和myfiles正確的Debian和CentOS目標。


如果由於某種原因您遇到問題,您可以查看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

相關問題