配置Jenkins自動拉取gitlab中的代碼并部署方式
配置 Jenkins 自動拉取 gitlab 中的代碼并部署
1、安裝插件
安裝以下插件:
Credentials Plugin(默認已經安裝) #簽名證書管理插件 Gitlab Plugin #拉取 gitlab 中的源代碼 SSH Plugin #這個插件使用 SSH 協(xié)議遠程執(zhí)行 shell 命令。
選擇對應的插件進行安裝。

- 選擇之后點擊安裝

- 安裝之后重啟jenkins

2、設置 gitlab 用戶 root 可以通過 ssh 公鑰直接下載代碼
部署 key,讓 root 用戶可以不輸入密碼,獲取 gitlab 上的源代碼,該 key 是使用 git 下拉代碼時使用。

在gitlab服務器生成公鑰,一路回車,不要輸入密碼
ssh-keygen
查看公鑰
cat .ssh/id_rsa.pub

復制公鑰信息,點擊添加密鑰。

可以在服務器進行測試

git clone git@172.16.251.6:jcpt/wryjc.git
不用密碼可以進行克隆,表示配置成功

3、jenkins添加git用戶root的私鑰
查看私鑰
cat .ssh/id_rsa
將私鑰內容添加到 Jenkins(private key 選項)


粘貼私鑰信息,點擊添加

root 公鑰在 gitlab,root 私鑰在 jenkins,這樣 jenkins 就可以直接拉取 gitlab 上的代碼

4、在 Jenkins 創(chuàng)建新的任務
新建項目:


源碼管理選擇git,輸入代碼地址,選擇創(chuàng)建好的憑據(jù)。

保存之后,點擊構建(Build Now)

查看控制臺輸出

顯示success 表示成功。

代碼存放位置在: /var/lib/jenkins/workspace/
ls /var/lib/jenkins/workspace/

查看項目文件
5、將代碼發(fā)布到web服務器
可以通過執(zhí)行命令或腳本的方式進行代碼發(fā)布,這里使用 root 用戶在各個 web 服務器上發(fā)布代碼。大家也可以建立一些普通用戶如 www 或 apache 來發(fā)布。
如果使用普通用戶發(fā)布代碼,要保持所有服務器上的用戶 id 一致,這樣沒有權限的問題。
實驗拓撲圖:

web服務器配置
安裝apache服務,并啟動
yum install httpd -y systemctl restart httpd
測試訪問
http://ip 默認是80端口

6、準備自動部署web代碼
配置root用戶無密碼登陸
將jenkins服務器的ssh key 拷到web服務器
ssh-copy-id 172.16.251.5
注:需要在哪臺機器上自動發(fā)布代碼,就需要讓 jenkins 這臺機器的 root 用戶可以免密碼登錄到那臺服務器上。
添加構建步驟

echo '當前 WORKSPACE 工作目錄' pwd #'在構建時,默認會直接切換到 workspace 目錄,所以可以直接將當前目錄中的內容復制給被部署的服務器 scp -r ./* root@172.16.251.5:/var/www/html/
添加執(zhí)行命令

再次構建

查看控制臺輸出

訪問web頁面,成功。

7、配置代碼更新后自動觸發(fā)jenkins進行部署
添加構建觸發(fā)器,使gitlab中代碼更改時自動拉取最新的代碼

復制該地址 http://172.16.251.6:8088/project/wryjc

點擊生成token后,點擊保存

注:這個 secret token,只用于 gitlab 和 jenkins 上的 wryjc流水線,進行觸發(fā)和溝通。
修改gitlab配置,使Webhook可以對本地網絡發(fā)送請求,修改后保存。

生成wryjc項目的webhook鉤子,輸入jenkins中的地址及token后保存。

測試webhook,顯示200 提示成功

jenkins平臺查看,顯示成功。


8、測試gitlab觸發(fā)jenkins自動部署
在git服務器提交代碼,驗證是否可以自動部署:
echo "hello this is my devops " >> index.html git add index.html git commit -m "modify index.html" git push -u origin master
jenkins控制臺輸出成功。

訪問web頁面,內容改變,表示自動部署成功。

總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解phpstudy linux web面板(小皮面板)V0.2版本正式發(fā)布
小皮面板,是由phpStudy官方團隊針對Linux服務器開發(fā)推出的一款服務器環(huán)境搭建以及管理工具。這篇文章主要介紹了phpstudy linux web面板(小皮面板)V0.2版本正式發(fā)布,需要的朋友可以參考下2019-10-10
將Git存儲庫克隆到本地IntelliJ IDEA項目中的詳細教程
這篇文章主要介紹了將Git存儲庫克隆到本地IntelliJ IDEA項目中的詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
HTTP協(xié)議入門_動力節(jié)點Java學院整理
這篇文章主要為大家詳細介紹了HTTP協(xié)議入門的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07
如何在vscode中正確使用正則表達式進行文檔內容的替換編輯
正則表達式是一種強大的模式匹配工具,它具有廣泛的應用,包括數(shù)據(jù)清洗、文本處理、文件搜索等方面,這篇文章主要給大家介紹了關于如何在vscode中正確使用正則表達式進行文檔內容的替換編輯,需要的朋友可以參考下2023-12-12
hexo博客開啟https的SSL?證書實現(xiàn)過程
這篇文章主要為大家介紹了hexo?博客開啟https的SSL證書實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10
高性能WEB開發(fā)(5) 減少請求,響應的數(shù)據(jù)量
上一篇中我們說到了 如何減少請求數(shù),這次說說如何減少請求、響應的數(shù)據(jù)量(即在網絡中傳輸?shù)臄?shù)據(jù)量),減少傳輸?shù)臄?shù)據(jù)量不僅僅可以加快頁面加載速度,更可以節(jié)約服務器帶寬,為你剩不少錢(好像很多機房托管都是按流量算錢的)。2010-05-05

