当前位置: 首页 > 知识库问答 >
问题:

无法通过macOS中的ansible非存档模块提取tar文件?

林铭
2023-03-14

我写了一个剧本,下载tar文件

" msg ":"找不到\"/Users/harmeet/的处理程序。ansi ble/tmp/ansi ble-tmp-1549339698.75-251687957122076/config . tar 9 ixauq . gz \ "。确保安装了提取文件所需的命令。命令\"/usr/bin/tar\ "被检测为tar类型bsd。需要GNU tar。命令\"/usr/bin/unzip\ "无法处理归档文件。

行动手册代码

-name: Download the tar for sample config 
unarchive:
 src: http://someremoteurl/config.tar.gz 
dest: /Users/{{ansible_user}}/.myfolder/ 
remote_src: yes 
creates: /Users/{{ansible_user}}/.myfolder/config

如果在远程服务器上使用zip fie,例如 http://someremoteurl/config.zip 则此任务有效,但对于tar文件,它将失败。

我还安装了gnu tar,例如gtar

共有2个答案

松亦
2023-03-14

如果默认shell是zsh,则应将以下内容放入~/.zshenv

export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"

您可以通过以下方式检查它是否正常工作:

ansible the-hostname -m command -a "which tar"
杨晟
2023-03-14

事实上,在macOS上,它寻找基于GNU的tar存档模块,而在mac上找不到。因此,如果您在ansible中使用mac的zip模块,它将工作,但为此,我们可能需要更改playbook文件

我通过以下步骤解决了这个问题

    < li >自制安装gtar。< code>brew安装gnu-tar < li >在< code >中设置gtar的路径。bashsrc文件,否则它将无法使用gtar进行解归档。通常是<代码>。bashsrc存在于< code>$HOME路径中。如果不存在,则创建它。

export PATH = "/usr/local/opt/GNU-tar/libexec/gnubin:$ PATH " export man PATH = "/usr/local/opt/GNU-tar/libexec/gnuman:$ MANPATH "

谢谢

 类似资料:
  • 我得到了错误,而解压缩zip文件使用unArchive模块在我的anable playbook……它工作正常,有时我得到下面的错误 失败了!= 我使用下面的脚本代码来执行取消存档 有什么需要纠正的吗,我浏览了可调整的文档.....我希望我在正确的代码上,但仍然得到错误...请任何建议

  • 我正在尝试执行一个可操作的剧本,其中包含一个使用模块的任务。因为我是在OSX上这样做的,所以我需要它使用,而不是通常随OSX附带的,因为BSD焦油不是官方支持的。 我已经使用安装了,并将此包的文件夹置于变量中的其他路径之前。然而,我的playbook仍然在文件夹(原始)中查找,而不是新安装的。 我的问题是,< code>unarchive模块如何查找< code>tar二进制文件,我最好用什么方法

  • 我正在远程服务器上运行大量模拟(通过ssh)。这些模拟的结果作为.tar存档存储在此远程服务器上的存档目录中。 我想做的是编写一个bash脚本,它通过ssh连接到远程服务器,并从每个服务器中提取所需的输出文件。tar存档到本地硬盘上的单独文件夹中。 这些文件夹应与文件来自的.tar文件同名(例如,假设模拟 1 的输出存储在存档 S1 中.tar远程服务器上的存档中,我希望 .tar将此存档中的所有

  • 我已经创建了一个应用程序,它将从tar存档中提取单个文件。该应用程序正确读取*.tar,但是当我尝试提取文件时,该应用程序只是使用正确的文件名创建新文件...文件为空 (0kb)。所以。。。我可能只是创建新文件而不是提取... 在这一点上,我完全是个初学者...

  • 问题内容: 我有一个包含要使用tar存档的文件列表的文件。叫它吧 它包含了: 有没有一种方法可以发出作为输入的TAR命令?就像是 这样就好像我发出以下命令一样: 问题答案: 是:

  • 我有一个.tar文件,其中包含文件夹中的许多.gz文件。这些 gz 文件中的每一个都包含一个.txt文件。与此问题相关的其他堆栈溢出问题旨在提取文件。 我试图反复阅读每一个的内容。txt文件,因为。焦油很大。 首先我阅读了. tar文件的内容: 或在Unix中: 然后我尝试使用tarfile提取文件方法,但我得到一个错误:“模块'tarfile'没有属性'提取文件'”。此外,我甚至不确定这是正确的