如何使用Ansible将文件复制到本地目录?

问题描述:

我正在尝试设置一个配置我的开发系统的手册。我想将我的剧本“files”目录中的/etc/hosts文件复制到我系统上的/etc目录。目前,我做了以下内容:如何使用Ansible将文件复制到本地目录?

# main.yml 
- hosts: all 
- tasks: 
    - copy: src=files/hosts 
      dest=/etc/hosts 
      owner=root 
      group=wheel 
      mode=0644 
      backup=true 
     become: true 
# inventory 
localhost ansible_connection=local 

当我跑我得到这个错误的剧本:

fatal: [localhost]: FAILED! => {... "msg": Failed to get information on remote file (/etc/hosts): MODULE FAILURE"} 

我相信这是因为拷贝应该被使用将文件复制到远程文件系统。那么如何将文件复制到本地管理系统?我做了一个Google搜索,一切都在谈论做前者。在Ansible文档中我没有看到这个问题。

+0

“将文件复制到本地目录”? 'scuse me,但是在什么意义上是/ etc/hosts * local *? – Danimal

+0

@Danimal:查看Dave的后续评论 **#inventory localhost ansible_connection = local ** 这意味着,他正在执行他在本地主机上的所有剧本资料 –

您的任务还可以。

您应该将--ask-sudo-pass添加到ansible-playbook调用中。


如果用-vvv运行,你可以看到sudo -H -S -n -u root /bin/sh -c echo BECOME-SUCCESS-somerandomstring(后面的Python脚本调用)的命令启动。如果你自己执行它,你会得到sudo: a password is required消息。 Ansible用它自己的Failed to get information on remote file (/etc/hosts): MODULE FAILURE替代了这个错误信息。