1.安裝jenkins(準備java環境,必須jdk8及以上)
下載JDK 1.8,上傳到centos7系統上html
http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz?AuthParam=1538988644_c7f213461e0c9f00c91a6a550db5f831
解壓:tar -zxvf jdk-8u181-linux-x64.tar.gzjava
另存:linux
mkdir /usr/local/jdk/git
mv jdk1.8.0_181/* /usr/local/jdk/github
配置環境變量:docker
vi /etc/profileshell
JAVA_HOME=/usr/local/jdkapache
JRE_HOME=$JAVA_HOME/jreubuntu
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binvim
CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar
export JAVA_HOME JRE_HOME PATH CLASSPATH
從新加載環境配置:source /etc/profile
下載jenkins:wget http://mirrors.jenkins.io/war/latest/jenkins.war
後臺啓動: nohup java -jar jenkins.war --ajp13Port=-1 --httpPort=9999 >temp.txt &
jenkins的docker鏡像製做:請見碼雲 建立jenkins的docker鏡像
2. 環境準備
git安裝:
下載安裝包:wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
依賴包(centos):yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
依賴包(ubuntu): apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
apt-get -y install gcc automake autoconf libtool make
解壓:tar -zxvf git-2.9.5.tar.gz
進入解壓包:cd git-2.9.5
編譯:make prefix=/usr/local/git all
安裝:make prefix=/usr/local/git install
maven安裝:
解壓:tar -zxvf apache-maven-3.3.9-bin.tar.gz
移到指定目錄:mv apache-maven-3.3.9 /usr/local/maven
配置環境變量:vim /etc/profile
M2_HOME=/usr/local/maven
export PATH=${M2_HOME}/bin:${PATH}
從新加載環境配置:source /etc/profile
3.啓動、配置
輸入提示路徑下的密碼,安裝默認的插件,設置管理員用戶,肯定jenkins根路徑
【系統管理】->【全局工具配置】:
【系統管理】->【插件管理】:
【Safe Restart Plugin】 //重啓jenkins系統
【Email Extension Plugin】 //因爲Jenkins自帶的郵件功能比較雞肋,所以推薦安裝專門的郵件插件
【maven integration plugin】 //該插件安裝了,才能建立maven項目
【git plugin】 //從遠程拉取代碼
【publish over ssh】 //ssh遠程登陸
【SSH Plugin】 //SSH登陸到一個遠程服務器以執行必要的腳本
【系統管理】->【全局安全配置】:
【系統管理】->【系統設置】:
【SSH remote hosts】:
【郵件設置】:
【Publish over SSH】:
4.建立構建任務
【新建任務】:
任務名稱->構建maven任務->確認
5.手動觸發構建
【jenkins主頁面】->【相應的構建任務】->【當即構建】
注:防火牆的shell命令:
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,沒有此參數重啓後失效)
firewall-cmd --reload 從新載入
firewall-cmd --zone=public --remove-port=80/tcp --permanent 刪除
firewall-cmd --zone=public --query-port=80/tcp 查看
firewall-cmd --state 查看firewall是否運行
firewall-cmd --list-services 查看當前開了哪些端口
firewall-cmd --get-services 查看還有哪些服務能夠打開
firewall-cmd --zone=public --list-ports 查看全部打開的端口
郵箱內容模版(Default Content):
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次構建日誌</title> </head> <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> <tr> 本郵件由系統自動發出,無需回覆!<br/> 各位同事,你們好,如下爲${PROJECT_NAME }項目構建信息</br> <td><font color="#CC0000">構建結果 - ${BUILD_STATUS}</font></td> </tr> <tr> <td><br /> <b><font color="#0B610B">構建信息</font></b> <hr size="2" width="100%" align="center" /></td> </tr> <tr> <td> <ul> <li>項目名稱 : ${PROJECT_NAME}</li> <li>構建編號 : 第${BUILD_NUMBER}次構建</li> <li>觸發緣由: ${CAUSE}</li> <li>構建狀態: ${BUILD_STATUS}</li> <li>構建日誌: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li> <li>構建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li> <li>工做目錄 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li> <li>項目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li> </ul> <h4><font color="#0B610B">失敗用例</font></h4> <hr size="2" width="100%" /> $FAILED_TESTS<br/> <h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4> <hr size="2" width="100%" /> <ul> ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"} </ul> 詳細提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/> </td> </tr> </table> </body> </html>
配置模塊友情連接:
docker+github+jenkins+maven自動化部署----郵件配置
docker+github+jenkins+maven自動化部署----提交代碼到github時自動觸發構建任務配置
docker+github+jenkins+maven自動化部署----代碼檢查和覆蓋率檢查SonarQube+JaCoCo+Jenkins+Maven配置