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

时间:2016-12-04 04:36:56

标签: ansible ansible-playbook

我正在尝试设置一个配置我的开发系统的剧本。我想从我的剧本"文件"中复制/etc/hosts文件。目录到我系统上的/etc目录。目前我正在做以下事情:

# 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文档中看到这个问题。

1 个答案:

答案 0 :(得分:3)

你的任务还可以。

您应该将--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