gpt4 book ai didi

macos - 无法通过 macOS 中的 ansible unarchive 模块提取 tar 文件?

转载 作者:行者123 更新时间:2023-12-04 01:47:56 26 4
gpt4 key购买 nike

我写了一个 playbook 下载 tar 文件并将其解压缩到 Mac 中的某个目录。但是当我运行 playbook 时它失败并出现以下错误

"msg": "Failed to find handler for \"/Users/harmeet/.ansible/tmp/ansible-tmp-1549339698.75-251687957122076/config.tar9IXAUQ.gz\". Make sure the required command to extract the file is installed. Command \"/usr/bin/tar\" detected as tar type bsd. GNU tar required. Command \"/usr/bin/unzip\" could not handle archive.

剧本代码

-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 文件它失败了。

在查看 this question 后,我还安装了 gnu tar,例如 gtar 并更新了 .bash_src 中的路径

最佳答案

实际上在 macOS 上它会寻找在 mac 上找不到的基于 GNU 的 tar 存档模块。因此,如果您在 ansible 中使用适用于 mac 的 zip 模块,它会起作用,但为此我们可能需要更改 playbook 文件,因为我在 mac 和 linux 上都使用单个 playbook,所以它可能会产生问题。我使用了基于 GNU 的 tar 归档模块来解决这个问题。

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

  1. 通过自制软件安装 gtar。 brew install gnu-tar
  2. .bashsrc 文件中设置 gtar 的路径,否则将无法使用 gtar 进行解档。通常 .bashsrc 存在于 $HOME 路径中。如果不存在,则创建它。

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

谢谢

关于macos - 无法通过 macOS 中的 ansible unarchive 模块提取 tar 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54528115/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com