2017-08-08 43 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 

(我沒有檢查它完全按照這裏寫的,但它很容易看到的想法)