如何使用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文档中我没有看到这个问题。
答
您的任务还可以。
您应该将--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
替代了这个错误信息。
“将文件复制到本地目录”? 'scuse me,但是在什么意义上是/ etc/hosts * local *? – Danimal
@Danimal:查看Dave的后续评论 **#inventory localhost ansible_connection = local ** 这意味着,他正在执行他在本地主机上的所有剧本资料 –