最近,由于項目代碼遷移到Git,所以整個測試環境的部署需要修改,且測試服務器未能申請到訪問Git服務器的權限,故只能以中轉機的方式進行環境部署,以下是筆者部署環境的步驟。
首先需要做一些權限申請:
- 測試服務器與中轉機之間的訪問;- Jenkins所在服務器訪問中轉機之間許可;- 測試服務器配置rsyncd.conf,允許中轉機向其傳輸文件;
如上權限申請通過后,即可開始著手。
1.添加SSH Key
中轉機上安裝Git,可參考
https://www.cnblogs.com/lhbryant/p/6928894.html
.ssh路徑下生成key,命令 ssh-keygen -t rsa
copy文件id_rsa.pub中內容,到Git平臺維護即可。
2.shell腳本維護
編寫中轉機上拉取代碼、推送代碼腳本
在編寫腳本前,首先需要將Git上的代碼download一份,以備用。
git remote add origin git SSH鏈接
clone代碼
git clone git SSH鏈接 /home/xxx/git/test/
將git上test項目的代碼,clone到本地/home/xxx/git/test/路徑下
腳本編寫:
/home/xxx/shell/ 路徑下新建腳本deploy.sh
1)從Git拉取代碼
$1為運行腳本時傳入參數,由于項目并行開發的需求,每個項目所提分支可能不同,故使用參數形式,如項目只有一個分支,則也可指定分支名稱。
2)將代碼推送至測試服務器
此處使用了rsync來進行文件同步,原因有兩點:一. 可以保持原來文件的權限、時間、軟硬鏈接等附加信息;二. 可實現增量同步,即只同步發生變化的數據,因此數據傳輸效率更高。
增加exclude是為了避免一些不需同步的配置文件被覆蓋,文件中維護不想被替換的文件名稱即可。
如:
腳本維護好之后,可以先運行腳本,檢查一下是否有問題
sh test qtest branch_001 (將Git上qtest分支的代碼部署到測試服務器branch_001分支上)
當然如果是有多臺測試服務器,則只需將腳本內容修改一下即可。
3.
Jenkins維護
首先,添加證書。
其次,添加SSH sites。
這里需要保證一點,Jenkins所在服務器可以訪問中轉機。
最后,創建job
保存后,即可使用Jenkins進行環境部署