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

Ubuntu 如何使用ansible提取目标上的war文件,ubuntu,ansible,Ubuntu,Ansible,我使用的是Ansible的非归档模块,它似乎无法提取war文件。它对焦油很有效 还有一个开关setype:“type part of SELinux file context”,我不确定是否可以用来将文件类型设置为war 我试过这个: -name: Unpack war unarchive: src=~/wars/mywar.war dest=/tmp/deploy setype=war copy=no 它给出错误:ms

我使用的是Ansible的非归档模块,它似乎无法提取war文件。它对焦油很有效

还有一个开关
setype
:“type part of SELinux file context”,我不确定是否可以用来将文件类型设置为war

我试过这个:

-name: Unpack war
 unarchive: src=~/wars/mywar.war
            dest=/tmp/deploy
            setype=war
            copy=no
它给出错误:
msg:未能找到要取消归档的处理程序。确保安装了提取文件所需的命令。

当我不使用“setype”时,我会再次遇到完全相同的错误


如何使用Ansible提取war文件?

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


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

我自己在ZIP存档中遇到了这个错误-它失败了,因为ZIP不完整。检查您是否可以直接在服务器上运行
unzip~/wars/mywar.war
,您可能会收到更有用的错误消息。

您应该能够使用Ansible取消归档.war文件。 是否确实已安装“unzip”&目标系统上可用的“unzip”命令

根据:
“在目标主机上需要gtar/unzip命令”

也需要常规的zip/unzip命令。但是从我读到的,war/jar文件本质上是zip文件……它们本质上是zip文件,但是它们使用jar命令来打包/解包,而不是unzip/untar/gunzip命令。ansible模块需要修改以支持在指定war文件时使用jar命令,以便支持解包。这是错误的:)
ansible-i../inventory/hosts local-m unarchive-a“src=zip-content.war dest=./extracted”-v
(从命令行使用
zip-r…
创建的war文件)——我无法对OP的实际错误发表评论。setype与此无关,它是用于“增强安全性的Linux”不适用于文件类型。您还可以使用参数
-vvv
运行ansible,以获得更详细的输出,这通常会告诉您问题所在。