如何使用ansible从命令行创建war文件

时间:2019-09-13 10:37:47

标签: ansible

我正在使用Ansible创建战争文件,下面是我正在使用的代码

- name: Create test.war file
  command: jar -cf test.war *
  args:
    chdir: /tmp/testFolder/

但是我遇到了错误

  "rc": 1,
    "start": "2019-09-13 15:20:03.759503",
    "stderr": "* : no such file or directory",
    "stderr_lines": [
        "* : no such file or directory"

谁能帮我解决这个问题

1 个答案:

答案 0 :(得分:1)

这是因为*被shell扩展了,但是在运行command时,您没有shell。

您可以使用shell模块来代替它工作:

- name: Create test.war file
  shell: jar -cf test.war *
  args:
    chdir: /tmp/testFolder/

否则,您必须指定一个外壳以进行扩展:

- name: Create test.war file
  command: /bin/sh -c 'jar -cf test.war *'
  args:
    chdir: /tmp/testFolder/

(该第二个解决方案的所有功劳归于redbaron