Simple Ansible playbook:将文件复制到目标服务器的任务文件的位置?

时间:2013-09-23 17:56:39

标签: ansible

作为一个概念证明,我正在尝试创建可能是最简单的ansible playbook:将单个文件从ansible服务器复制到服务器场。

为完整起见,安装正确。 ping模块效果很好!大声笑

我的POC的剧本上写着:

---
- hosts: Staging
  tasks:
    - name: Copy the file
      copy: src=/root/Michael/file.txt dest=/tmp/file.txt

当我运行命令时......

ansible-playbook book.yml

我得到以下输出(摘要)......

msg: could not find src=/root/Michael/file.txt

我读过的各种文档和网页都说文件的路径可以是绝对的,也可以是相对于剧本的。我试过两次都没有成功。

我的文件应该放在何处将其复制到目标服务器?

谢谢!

1 个答案:

答案 0 :(得分:8)

以我的方式发现错误。该剧本和文件位于运行ansible-playbook命令的帐户无法访问的目录中。因此,虽然ansible-playbook进程可以读取playbook(我从文件所在的目录中调用命令),但进程无法读取文件所在的目录,因此无法找到该文件。

解决方案是将playbook和文件移动到一个目录中,该目录可以由运行ansible的帐户读取。在那之后,剧本的工作方式完全符合预期!