【问题标题】:ansible - unarchive - input file not foundansible - unarchive - 找不到输入文件
【发布时间】:2015-12-18 08:21:46
【问题描述】:

我在 Ansible (1.9.2) 尝试解压缩文件时收到此错误。

19:06:38 TASK: [jmeter | unpack jmeter] ************************************************ 
19:06:38 fatal: [jmeter01.veryfast.server.jenkins] => input file not found at /tmp/apache-jmeter-2.13.tgz or /tmp/apache-jmeter-2.13.tgz
19:06:38 
19:06:38 FATAL: all hosts have already failed -- aborting
19:06:38 

我在目标服务器上检查,/tmp/apache-jmeter-2.13.tgz 文件存在并且它具有有效的权限(为了测试我也给了 777,即使没有 reqd 但仍然得到上述错误消息)。

我还检查了这个文件的 md5sum(与 apache jmeter 网站上的内容进行比较)——它匹配!

# md5sum apache-jmeter-2.13.tgz|grep 53dc44a6379b7b4a57976936f3a65e03
53dc44a6379b7b4a57976936f3a65e03  apache-jmeter-2.13.tgz

当我在这个文件上使用 tar -xvzf 时,tar 能够在 .tgz 文件中显示/提取它的内容。

我可能会错过什么?在这一点上,我想知道 Ansible 中的 unarchive 方法/模块一定有一些错误。

我最后的手段(如果我无法在 Ansible 中解压工作)是使用 Command: "tar -xzvf /tmp/....." 但我没有想把它作为我的首选。

【问题讨论】:

  • 您能否提供一个失败的示例任务。
  • @Vor 任务很简单,就像这里的 Ansible 取消归档示例一样:docs.ansible.com/ansible/unarchive_module.html 我错过了使用其中一个选项(copy=no).. 我猜是我的错。

标签: module ansible tar ansible-playbook unpack


【解决方案1】:

Unarchive 的默认行为是在本地系统上查找文件,将其复制到远程,然后解压缩。我怀疑如果您遇到文件未找到错误,那么您需要在任务中指定 copy=no

【讨论】:

  • 完全正确.. 刚刚发现相同:) 默认情况下,unarchive 会将文件从本地复制到远程。指定 copy: no 如果文件已经存在于远程。这适用于厨房,因为厨房在当地环境中运行。 github.com/ansible/ansible/issues/8957
  • 谢谢!我使用ansible-container 遇到了这个问题
  • 哇,我正在为这种行为而苦苦挣扎!这对我来说真的很不清楚。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-03-06
  • 1970-01-01
  • 2019-06-28
  • 1970-01-01
  • 2021-07-21
  • 1970-01-01
  • 2017-01-28
  • 1970-01-01
相关资源
最近更新 更多