0

我的带有 shell 模块的剧本

 - name: Unarchive  macports from local machine
      shell: |
        tar -xvf MacPorts-2.6.2.tar.gz
        cd MacPorts-2.6.2
        ./configure 
        make
        make install

错误 [警告]:考虑使用 unarchive 模块而不是运行“tar”。如果由于 unarchive 不足而需要使用命令,您可以在此命令任务中添加 'warn: false' 或在 ansible.cfg 中设置 'command_warnings=False' 以消除此消息。致命:[XXXX]:失败!=> {"更改": true, "cmd": "tar -xvf MacPorts-2.6.2.tar.gz\ncd MacPorts-2.6.2\n./configure\nmake \nmake install\n", "delta" : "0:00:00.026259", "end": "2020-06-03 15:54:26.259407", "msg": "非零返回码", "rc": 2, "start": "2020 -06-03 15:54:26.233148", "stderr": "tar: 打开存档出错: 无法打开 'MacPorts-2.6.2.tar.gz'\n/bin/sh: 第 1 行: cd: MacPorts- 2.6.2:没有这样的文件或目录\n/bin/sh: 第 2 行: ./configure: 没有这样的文件或目录\nmake: * 没有指定目标,也没有找到 makefile。停止。\nmake: *没有规则进行目标install'. Stop.", "stderr_lines": ["tar: Error opening archive: Failed to open 'MacPorts-2.6.2.tar.gz'", "/bin/sh: line 1: cd: MacPorts-2.6.2: No such file or directory", "/bin/sh: line 2: ./configure: No such file or directory", "make: *** No targets specified and no makefile found. Stop.", "make: *** No rule to make target安装'。停止。”],“stdout”:“”,“stdout_lines”:[]}

但是我在目标机器上有 tar.gz 文件,当我使用 unarchive 模块解压时面临以下问题

任务 [从本地计算机取消归档 macport] ****************************************** ****************************************************** ****************************** 致命:[XXX]:失败!=> {"changed": false, "msg": "Failed to find handler for \"/Users/pru5/Documents/ansible/MacPorts-2.6.2.tar.gz\"。确保提取所需的命令文件已安装。命令 \"/usr/bin/tar\" 检测为 tar 类型 bsd。需要 GNU tar。命令 \"/usr/bin/unzip\" 无法处理存档。"} 有人可以帮我解压缩文件在麦克??

4

2 回答 2

0

我安装了 jnu-tar,但我不确定这是否有帮助。未归档的力气工作,别无选择,选择了 shell

name: extract tar
shell: |
  cd <file_path>
  tar -xvf <file_path/file_name>
于 2020-06-04T13:42:42.987 回答
0

第一点是将完整路径与 Ansible playbooks 一起使用。我建议分成两部分,首先使用 Ansible 本机模块解压文件unarchive,第二部分将使用command orshell模块进行配置和安装

- name: Extract TAR
  unarchive:
    src: /Users/pru5/Documents/ansible/MacPorts-2.6.2.tar.gz
    dest: /tmp/MacPorts
- name: Install software
  command: cd /tmp/MacPorts && ./configure && make && make install
于 2020-06-03T11:01:48.700 回答