jenkins代碼自動部署

jenkins是一個普遍用於持續構建的可視化web工具,持續構建說得更直白點,就是各類項目的"自動化"編譯、打包、分發部署。jenkins能夠很好的支持各類語言(好比:java, c#, PHP等)的項目構建,也徹底兼容ant、maven、gradle等多種第三方構建工具,同時跟svn、git能無縫集成,也支持直接與知名源代碼託管網站,好比github、bitbucket直接集成

jenkins服務器:192.168.239.134
測試服務器:  192.168.239.136

1.配置免密鑰通訊
實現自動化部署首先要解決的是免密碼傳輸,配置jenkins至測試服務器之間免密鑰ssh登陸
 

 

 測試免密鑰ssh登陸php

 

 

 在測試服務器上編寫一個測試腳本,檢測是否能夠執行成功,正式環境能夠寫一個自動化部署的腳本html

  

 

 

 

2.jenkins新建部署代碼項目
 
 

 在構建這裏選擇執行shell命令 java

 

 點擊當即構建 git

  

 控制檯輸出日誌:成功github

 

 這樣就實現了使用jenkins代碼的自動化部署web

 實際狀況中咱們一般使用版本控制系統管理代碼,svn 或者 gitshell

 

 2、gitlab利用webhook實現push代碼後jenkins自動構建c#

 jenkins服務器:192.168.239.134bash

 gitlab服務器: 192.168.239.136服務器

 PS:若是gitlab與jenkins在同一臺服務器,須要更改其中一個的端口,默認都是8080

 以前部署了gitlab的代碼託管平臺和jenkins代碼發佈平臺,一般是開發後的代碼先推到Gitlab上管理,而後在Jenkins裏經過腳本構建代碼發佈。這種方式每次在發版的時候,須要人工去執行jenkins上的構建動做,有時顯得過於繁瑣。因而就想到了Gitlab的Webhook功能,經過Webhook的相關設置,能夠實現代碼Push後,自動去觸發jenkins上的構建動做,這樣就不須要人工干預去執行發版操做了

 提早將jenkins本機的key添加到gitlab帳戶上

 

 1.jenkins安裝gitlab hook plugin插件

 

 

 在auto_deploy項目工程裏設置代碼的git下載路徑並關聯構建的分支

 

 

 查看jenkins生成回調地址,在任務構建觸發器下獲取回調URL,下面的URL那一行只有gitlab hook plugina插件下載成功後才能顯示

 

 設置代碼發佈的推送腳本

 

 

 注意:這裏使用192.168.239.136的test用戶是與jenkins服務器已經配置了ssh免密鑰登陸

#!/bin/bash
SOURCE_DIR=/root/.jenkins/workspace/${JOB_NAME}/
DEST_DIR=/var/www/html/
REMOTE_IP=192.168.239.136
/usr/bin/rsync -e "ssh -p 22" -avpgolr --delete-before --exclude=.git $SOURCE_DIR test@$REMOTE_IP:$DEST_DIR

經過上面的git將代碼下載到jenkins本機jobs裏對應任務的workspace下,jenkins部署路徑是/root/.jenkins/workspace/,腳本中${JOB_NAME}是jenkins的內置變量
也能夠指定下載目錄,加--exclude忽略哪些文件不須要進行rsync傳輸
#!/bin/bash
SOURCE_DIR=/data/git_tmpdata
再經過rsync將下載的代碼分發到遠程目標機器上

 

 在192.168.239.136上建立/var/www/html/目錄並受權test用戶

 mkdir /var/www/html/ -p && chmod -R test.test /var/www/html/

 在gitlab上添加webhooks(注意這裏是管理員用戶才能添加)

 

 Add Webhook添加完成後,在下方點擊 test進行測試

 

 若是返回Hook successfully executed.表示配置成功。
 這樣,下次push代碼後,就會自動觸發jenkins上相關的構建工程進行自動發佈了!無需人工干預

 

 

 在gitlab上push一個文件hello.py,而後測試下是否自動發佈了

 

 在jenkins上查看輸出信息

 

 在目標機器192.168.239.136的/var/www/html/目錄下發現hello.py文件已經發布過來了

 

 
相關文章
相關標籤/搜索