Jenkins+Git+shell自動化部署一之流程回顧

         最近工作時總是需要用xshell連接Linux服務器手工部署php項目,很是麻煩,於是想通過代碼來解決這個頭痛的問題,於是開擼,擼之前先整理思路,下面我就從以下幾個方面介紹下整個過程。

         1.自動化部署需要工具

         2.部署腳本shell需要完成的功能

         3.遇到的技術問題有哪些

         4.這些問題是怎麼解決的

少廢話,先看最終成果。

Jenkins:

shell:

 

下面分別詳細介紹:

1、自動化部署需要的工具

自動化部署持續繼承當然是大名鼎鼎的Jenkins啦,因爲要涉及到自動化,優先選擇shell,因爲可以在Linux上直接操作

2.自動化部署shell腳本需要完成的功能

第一步:登陸目標Linux服務器,這裏可以採用Linux的spawn和expect,也可以直接通過Jenkins的ssh插件來解決。

第二步:檢查目標項目是否存在,如果存在直接git checkout 目標分支,git pull就可以了,但是如果遇到手動修改過Linux服務器上的代碼,一般git過程中都會Aborting,所以爲了防止遇到這種問題,想到了強制構建,也就是不管當前項目存在與否,統一刪除後,重新git clone,通過shell代碼解決

第三步:git 更新或下載目標項目後,需要軟鏈接Nginx配置文件,但是此時可能已經存在,防止配置文件發生更新,所以需要重新複製,並重新加載,通過shell代碼解決

第四步:最後需要cp目標項目的service文件到/lib/systemd/system,但是此時可能已經存在,防止配置文件發生更新,所以需要重新複製,並重新啓動服務,通過shell代碼解決

第五步:重啓服務後,檢查項目是否已經啓動,並打印該項目日誌,通過shell代碼解決

3.遇到的技術問題有哪些

1.Jenkins遷移,更換workspace如何操作?

2.Jenkins參數化構建,怎麼提取目標分支,如何使用布爾參數?

3.Jenkins構建,如何遠程執行shell腳本,困難是需要切換用戶操作?

4.shell如何等待執行,shell如何自動與Linux交互?

5.Jenkins控制檯日誌中文亂碼?

6.Jenkins系統如何顯示中文簡體?

 

 

未完待續!!!

關注我,持續更新後續內容,後續內容更加精彩,涉及到以上所有問題的講解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章