使用 'salt.module.tomcat' 部署 war 文件

Using 'salt.module.tomcat' for deploying war file

我正在尝试使用 salt 模块 tomcat.deploy_war 部署 war 文件,但出现以下错误... 'KeyError' 似乎无法识别 tomcat.deploy_war

说到 sls 文件,模块 file.managed 工作正常

看来我需要升级我的 salt master 和版本。 尝试做同样的事情,得到的回应是它已经升级了。

不确定是什么问题?

tomcat.deploy_war 是一个 执行模块 ,而不是 状态模块 。一般来说,像tomcat.deploy_war这样的执行模块总是命令式命名的("deploy!""delete!""install!")。您不能直接在状态中使用执行模块;相反,它们旨在用于临时 Salt 命令,例如使用命令行语句快速部署 WAR 文件:

salt 'tomcatminion' tomcat.deploy_war salt://path/to/app.war

另一方面,状态模块 旨在用于状态并以声明方式命名(由所需的最终状态)。在许多情况下,一个执行模块有一个相应的状态模块——在你的例子中是 tomcat.deploy_wartomcat.war_deployed(或 pkg.installpkg.installed 等等):

sample.war:
  tomcat.war_deployed:
    - war: salt://path/to/app.war

请参阅 salt.modules.tomcat execution module and the salt.states.tomcat state module 的相应文档。