使用saltstack highstate停止更新 - 启动?

时间:2017-08-08 06:43:38

标签: web-applications updates salt-stack

Saltstack负责更新Web应用程序代码(uwsgi,Python,如果重要的话)。我们的想法是从存档更新代码。最好使用单个salt命令 - state.highstate

问题是,在更新期间,应用程序代码不应该运行,因此service.stopservice.start围绕state.highstate运行。

有没有办法将此更新逻辑包含在highstate中?或者也许还有一些其他命令,哪个更合适?

1 个答案:

答案 0 :(得分:0)

在约翰霍尔的Mastering SaltStack,第2版中找到以下内容。

  

...,考虑一个使用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

(我没有像这里写的那样检查它,但很容易看到这个想法)