2017-08-02 144 views
0

Ansible版本:2.2.1.0Ansible递归目录复制

我无法将目录的内容复制到Ansible中的目标主机。我的角色的目录结构是这样的:

roles/server/ 
├── defaults 
│   └── main.yml 
├── files 
│   ├── Common-x86_64.repo 
│   ├── docker-ce-stable.repo 
| 
├── handlers 
│   └── main.yml 
├── meta 
│   └── main.yml 
├── README.md 
├── tasks 
│   ├── main.yml 
│   └── packages.yml 
├── templates 
├── tests 
│   ├── inventory 
│   └── test.yml 
└── vars 
    └── main.yml 

有很多(约12多种)中的文件目录的回购协议,我省略了大部分保持它短的缘故。我运行这段代码packages.yml

- name: 1. Setup Repos 
    file: 
     src: files/ 
     dest: /etc/yum.repos.d/ 
     owner: root 
     group: root 
     mode: 0644 

即使任务没有错误完成,没有被复制到/etc/yum.repos.d/在目标机器上:

ls /etc/yum.repos.d/ 
CentOS-Base.repo  CentOS-Media.repo CentOS-fasttrack.repo 
CentOS-CR.repo   CentOS-Sources.repo 
CentOS-Debuginfo.repo CentOS-Vault.repo 

我读到结尾的文档页面上使用/的源目录会导致内容被递归复制。我究竟做错了什么?

回答

2

file module而不是用于复制文件,但用于设置目标文件的属性。

copy module是用于复制。

+0

多么尴尬,我知道这一点,而且我一直都在使用'copy'模块。我甚至打开了文档,而是在代码中输入了'file'。我没有意识到我输入的文件,直到我看到你的答案。然后,我对源和目的地如此着迷。谢谢你的帮助。 – Patrick