无法使用Ansible解压位于远程CentOS机器上的文件

9
- name: Unzip the Elasticsearch file
  unarchive: src=/root/elasticsearch-1.4.0.tar.gz dest=/tmp/


TASK [Unzip the Elasticsearch file]     
*******************************************
fatal: [54.173.94.235]: FAILED! => {"failed": true, "msg": "ERROR! file or module does not exist: /root/elasticsearch-1.4.0.tar.gz"}

这个问题是否考虑了本地文件呢?我正在运行一个文件,希望在远程机器上解压缩文件。我该如何解决这个问题呢?


您需要发布playbook的相关部分才能获得有用的答案。 - marbu
@marbu:发布了剧本。 - Tanay Suthar
2个回答

30

默认情况下,Ansible将文件(src)从控制机复制到远程机器并解压缩。如果您不想让Ansible复制该文件,请在任务中设置copy=no

copy的值默认为yes,因此如果不设置copy=no,Ansible将尝试在本地机器上查找src文件。

unarchive: src=/root/elasticsearch-1.4.0.tar.gz dest=/tmp/ copy=no

Ansible - 解压

复制

如果为真,文件将从本地'主控机'复制到目标机器,否则,插件将在目标机器上查找src存档。


我想使用Ansible脚本在远程机器上解压文件夹。我在本地机器上运行我的脚本,并将更改应用于远程CentOS机器。在这种情况下,复制不起作用。有什么替代方法? - Tanay Suthar
归档文件在哪里?在本地机器上还是远程机器上? - helloV
然后,远程机器上不存在归档文件:ERROR!文件或模块不存在:/root/elasticsearch-1.4.0.tar.gz - helloV
它已经存在于远程机器上了。当我写'src'时,它会在本地机器上查找文件,而我不想这样做。我该如何让ansible知道文件已经存在,只需要在远程机器上解压缩即可? - Tanay Suthar
4
请注意,截至目前为止,文档中所述的 copy 已被弃用,建议改用 remote_src。这是一个谎言,只有在从主控端运行 ansible 时才成立。remote_src 尚未发布,因此如果您感到困惑为什么它不起作用,那是因为它尚不存在。 - mlissner
显示剩余2条评论

0

这是一个更好的答案。 copy已经被弃用了。 - Gabriel Boorse

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接