saltstack 迭代項目到客戶端並結合jenkins自動發布多台服務器


前面已經講解了Webhook實現Push代碼后的jenkins自動構建,接下來通過結合slatstack 實現多台機器的項目代碼發布。

利用saltstack中file.recurse方法,運用該模塊可以將定義的目錄下所有文件都推送到遠端服務器指定的位置,而且只需要一條命令,接下來我們就演示一下該方法的用法。

master 角色服務器上

saltstack配置文件中修改file_roots路徑:

grep "file_roots" -A3 -B3 /etc/salt/master | grep -vE "(^#|^$)"

這里為了方便測試,所以直接將salt的資源路徑改到了nginx指向的項目根目錄。

 1 [root@iz2ze4j1iyce3b7muq6jtiz web]# pwd
 2 /home/web
 3 [root@iz2ze4j1iyce3b7muq6jtiz web]# vim 
 4 .idea/         index.php      mall-api-salt/ swoole/        test.sls       
 5 [root@iz2ze4j1iyce3b7muq6jtiz web]# vim test.sls 
 6 test:
 7   file.recurse:
 8      - source: salt://mall-api-salt
 9      - name: /var/www/mall-api
10      - user: nginx
11      - group: nginx
12      - dir_mode: 755
13      - file_mode: 644
14      - include_enpty: True

注釋:

file_rsync:sls文件名,這里是file_rsync.sls
file.recurse:調用file模塊下的recurse方法
source:  salt://tools :定義源文件,即將要推送走的文件和路徑
name:  /opt/tools:推送到遠端服務器上的位置和名稱
user:  root:文件(目錄)的屬主
group:  root:文件(目錄)的用戶組
dir_mode:  755 目錄的權限為755
file_mode:  644 文件的權限為644
makedirs:  True 如果目錄不存在則創建
backup:  minion 開啟備份
include_enpty: True 包含空文件(目錄)
執行命令:salt 對象 state.sls sls文件

利用如下命令測試:

salt '*' state.sls test

登錄到minion角色服務器

可以看到已經成功

結合jenkins實現自動化發布代碼到多台

有了前面的基礎接下來實現需要的功能非常容易,只需要讓jenkins構建成功后,執行salt的腳本即可,具體如下圖。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM