如何使用ansible在目标上提取war文件

ank*_*agi 6 ubuntu ansible

我正在使用Ansible的unarchive模块,但似乎并没有提取war文件.它适用于.tar.

还有一个开关setype:"键入SELinux文件上下文的一部分",我不确定是否可以用来将文件类型设置为war.

我试过这个:

-name: Unpack war
 unarchive: src=~/wars/mywar.war
            dest=/tmp/deploy
            setype=war
            copy=no
Run Code Online (Sandbox Code Playgroud)

它给出了错误: msg: Failed to find handler to unarchive. Make sure the required command to extract the file is installed.

当我不使用'setype'时,我再次得到完全相同的错误.

如何使用Ansible提取war文件?

Bru*_*e P 0

根据unarchive 模块的 Ansible 文档,它仅支持 tar、gzip、bzip2 和 xz 压缩文件。我快速浏览了源代码,没有看到任何表明它支持解压缩 war 文件的迹象。您可能需要通过命令或 shell 模块手动调用 /path/to/java/bin/jar 来手动解压 war 文件。

编辑:此外,setype 参数并不意味着指定存档文件的类型。该参数与SELinux(安全增强型 Linux)有关。如果您不熟悉 SELinux,那么您可能根本不需要使用该参数。