2017-08-08 203 views
1

Saltstack负责更新Web应用程序代码(uwsgi,Python,如果它很重要)。这个想法是更新档案中的代码。如果使用单盐命令 - state.highstate将会很好。停止更新 - 开始以saltstack highstate?

问题是,在更新过程中应用程序代码不应该运行,所以service.stopservice.start围绕state.highstate运行。

有什么办法可以将这个更新逻辑包含到highstate中吗?或者也许还有其他一些命令,哪个更适合?

回答

0

发现在掌握SaltStack,由约瑟夫霍尔第二版以下。

...,考虑一个使用Apache的Web应用程序。当 生产服务器上的代码库发生更改时,应将Apache关闭 ,以避免安装尚未完成 的代码的错误。

的关键是使用prereq,这里是本书的例子适应我的档案情况:

my_service: 
    service: 
    - running 
    - name: my_service 
    - watch: 
     - cmd: my_archive 

my_archive: 
    cmd: 
    - run 
    - name: "/bin/tar -zxf my.tar.gz -C {{ code_dir }}" 
    - require: 
     - file: my.tar.gz 
    ... 

shutdown_my_service: 
    service: 
    - dead 
    - name: my_service 
    - prereq: 
     - cmd: my_archive 

(我没有检查它完全按照这里写的,但它很容易看到的想法)