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

时间:2015-01-21 07:24:20

标签: ubuntu ansible

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

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

我试过了:

-name: Unpack war
 unarchive: src=~/wars/mywar.war
            dest=/tmp/deploy
            setype=war
            copy=no

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

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

如何使用Ansible提取war文件?

3 个答案:

答案 0 :(得分:1)

您应该能够使用Ansible取消归档.war文件。 你确定安装了'unzip'吗?你的目标系统上有'unzip'命令吗?

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我自己在使用ZIP存档时出现此错误 - 由于ZIP不完整而失败。检查您是否可以直接在服务器上运行NSInserted/Updated/DeletedObjectsKey,并且可能会收到更有用的错误消息。