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
Run Code Online (Sandbox Code Playgroud)
该文件是通过一个单独的状态构建的,该状态似乎正常运行.
当salt exec时state.highstate
,输出为"无法确定源文件的上游哈希值/home/user/project/build/release/app.war"
有一个更好的方法吗?在一个状态下构建文件(因此它是本地的),然后在构建的文件更改时更新目标?谢谢你的建议.
您需要将其更改为,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
Run Code Online (Sandbox Code Playgroud)
至于将它链接到构建,您需要使用require
,如上面的修改状态,它假定您的构建状态定义如下:
the_build_state:
- cmd.run:
...
Run Code Online (Sandbox Code Playgroud)