基於上次的環境<部署Gitlab+Jenkins持續集成環境> 來實現自動化部署html
系統管理–>插件管理–>安裝如下插件:git
Credentials Plugin(默認已經安裝) # 簽名證書管理插件web
Gitlab Plugin # 安裝後從gitlab獲取代碼 shell
Git Plugin 和 Git Client Plugin # 用於jenkins在gitlab中拉取源碼 apache
GitLab Hook # gitlab觸發jenkins構建項目vim
gitlab Authentication # gitlab和jenkins認證相關的插件 瀏覽器
SSH Plugin # 進程執行shell腳本 bash
Publish Over SSH # 用於經過ssh部署應用
服務器
若是可選插件裏面沒有到已安裝的裏面查一下ssh
將代碼發佈到web服務器
經過執行腳本或者命令的方式來發布代碼 , 注意權限的問題 , 若是不是root用戶要保持全部服務器上的用戶ID一致
安裝apache
[root@Web ~]# yum -y install httpd [root@Web ~]# systemctl start httpd
準備自勱部署 web代碼事項
實現root用戶能夠無密碼直接登陸系統
# 在哪臺機器上自勱發佈代碼,就須要讓jenkins的root用戶能夠免密登陸到那臺服務器上 [root@Jenkins ~]# ssh-copy-id root@192.168.94.33 [root@Jenkins ~]# ssh 192.168.94.33
# 若是使用的不是root用戶 , 而是普通用戶 ,那麼要授予普通用戶sudo權限, 例:visudo添加 jenkins ALL=(ALL) NOPASSWD: /usr/bin/ssh
建立自動上傳web代碼的一個簡單的腳本 , 實際還須要備份
[root@Jenkins ~]# vim push.sh #!/bin/bash cd /root/damowang.cn-web git pull scp -r ./* root@192.168.94.33:/var/www/html [root@Jenkins ~]# chmod +x push.sh
配置Jenkins
瀏覽器訪問web服務器
實現Gitlib觸發Jenkins自動部署
是在公司的測試環境當中,當開發人員向gitlab倉庫提交代碼後,gitlab自動通知jenkins進行構建項目、代碼質量測試而後部署至測試環境,對生生產環境,後期使用手動部署代碼
安裝Gitlab插件
系統管理-管理插件-可選插件,安裝Gitlab Hook Plugin和Build Authorization Token Root 以及 Build Token Trigger
配置身份驗證令牌
生成Token
[root@Jenkins ~]# openssl rand -hex 12 8bde00c8584aa806692e69b4
在git項目配置界面設置連接和token
格式 : http://"jenkins地址"/buildByToken/build?job="jenkins項目名"&token="token值"
測試gitlab觸發jenkins自動部署
[root@Gitlab ~]# cd damowang.cn-web/ [root@Gitlab damowang.cn-web]# echo "521" >> index.html [root@Gitlab damowang.cn-web]# git add index.html [root@Gitlab damowang.cn-web]# git commit -m "loewife index.html" [master 6c6f9df] loewife index.html 1 file changed, 1 insertion(+) [root@Gitlab damowang.cn-web]# git push -u origin master Counting objects: 5, done. Writing objects: 100% (3/3), 270 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@192.168.94.11:damowang/damowang.cn-web.git 8bedbbb..6c6f9df master -> master 分支 master 設置爲跟蹤來自 origin 的遠程分支 master。
訪問web頁面查看代碼是否更新
到這已經實現自動拉取Gitlab代碼+自動部署代碼到測試環境
下面增長Build Pipeline插件以流程圖的形式展現各個Job的順序
這個插件可以以流程圖的形式展現各個Job 順序,依賴關係等等
下載完以後點擊新建視圖