回覆列表
-
1 # Tim_Huang
-
2 # IT大叔Cc
shell指令碼是Linux下的指令碼語言,自動化部署工具一般包括核心模組、擴充套件模組、外掛模組等組成,可以同時呼叫多臺Linux服務的shell指令碼執行同樣操作,簡單理解自動化部署工具是流程控制核心,shell指令碼可用作執行操作模組。
在Linux運維中,需要部署大量的伺服器,可以編寫shell腳對伺服器的初始部署進行流程化處理,而對於多臺伺服器同步部署使用shell指令碼也可完成,但是對於流程的追溯就有些力竭,自動化部署工具可以透過ssh使用者登陸或ssh免密連線多臺Linux伺服器,編譯或者部署服務。
目前比較常用的工具jenkins,是基於JAVA開發的一個開源軟體專案,同時也是一種繼續整合工具,jenkins可以說是一個平臺,在這個平臺上有多個伺服器節點,多個jobs工程完成構建任務。
基本工作流程如下:
對於開發人員只需要將程式碼提交到Git&SVN伺服器,在後續程式碼編譯、打包、上傳、執行都可以透過呼叫shell指令碼來完成。
1. 開發工程師將程式碼上傳到git&svn伺服器
2. 運維工程師使用jenkins建立jobs工作流,可以是一個job或者多個jobs,透過構建觸發機制進行串聯。
3. jenkins將git&svn上的程式碼下載到build伺服器,進行編譯打包。
4. 打包完畢將產出物建立docker容器映象
5. 執行docker容器
在以上過程中jenkins控制多個節點伺服器進行工作,而實際在操作的是shell指令碼,這就理解了自動部署工具jenkins進行多節點流程控制,shell指令碼進行模組操作。
shell是基礎,而自動化部署是應用。而目前使用jenkins這類比較多。都是web應用。可以有效控制權限。出錯也比較少