我正在尝试使用salt模块tomcat.deploy_war
部署war文件但是会出现以下错误...' KeyError'似乎它没有认识到tomcat.deploy_war
谈到sls文件,模块file.managed
工作正常
似乎我需要升级我的salt master和版本。 尝试做同样的事情,得到了它已经升级的回应。
不确定是什么问题?
答案 0 :(得分:3)
tomcat.deploy_war
是执行模块,而非状态模块。通常,像tomcat.deploy_war
这样的执行模块总是以命令方式命名(“deploy!”,“delete!”,“install!”)。您不能直接在状态中使用执行模块;相反,它们旨在用于ad-hoc Salt命令,例如使用命令行语句快速部署WAR文件:
salt 'tomcatminion' tomcat.deploy_war salt://path/to/app.war
另一方面,状态模块旨在用于状态并以声明方式命名(通过所需的结束状态)。在许多情况下,执行模块具有相应的状态模块 - 在您的情况下为tomcat.deploy_war
和tomcat.war_deployed
(或pkg.install
和pkg.installed
等等:
sample.war:
tomcat.war_deployed:
- war: salt://path/to/app.war
请参阅salt.modules.tomcat
execution module和salt.states.tomcat
state module的相应文档。