noob saltstack问题
我有一个以salt状态(war文件)创建的文件,我希望在更改时将该文件复制到服务器的deploy目录。我在想file.managed
是正确的方法,所以类似于:
/var/lib/tomcat7/webapps/app.war:
file.managed:
- source: /home/user/project/build/release/app.war
- user: tomcat7
- group: tomcat7
该文件是通过一个单独的状态构建的,该状态似乎正在正常运行。
当盐执行state.highstate
时,输出为
"无法确定源文件的上游哈希值/home/user/project/build/release/app.war"
有更好的方法吗?在一个状态下构建文件(因此它是本地的),然后在构建的文件更改时更新目标? 谢谢你的任何建议。
答案 0 :(得分:5)
您需要将其更改为file.copy
,因为file.managed
用于从salt主服务器或HTTP / FTP服务器获取文件。
/var/lib/tomcat7/webapps/app.war:
file.copy:
- source: /home/user/project/build/release/app.war
- force: True
- user: tomcat7
- group: tomcat7
- require:
- cmd: the_build_state
至于将它链接到构建,你需要使用require
,就像在上面的修改状态一样,它假定你的构建状态定义如下:
the_build_state:
- cmd.run:
...