今天請教了大神,終於把jenkins給搞明白了
現在做下筆記,防止自己老年痴呆又忘了怎么配置
(截圖可能不夠清晰,有不清楚的隨時評論打call)
機器配置:
安裝配置規划 |
|
機器 |
192.168.169.139(本機虛擬機) 192.168.169.140(本機虛擬機) |
系統 |
Red Hat Enterprise Linux Server release 6.4 (Santiago) |
系統內核 |
2.6.32-358.el6.x86_64 |
安裝包 |
jenkins.war |
路徑 |
Tar包路徑:/home/admin |
192.168.169.140作為Jenkins的部署服務器
192.168.169.139作為遠程服務器,部署war到Tomcat容器
jenkins打包部署到遠程服務器,需要以下安裝包:
1)jenkins.war(服務器140上解壓執行)
2)apache-maven-3.5.3-bin.tar.gz(服務器140上面解壓部署)
3)jdk-8u161-linux-x64.tar.gz(二者均需配置jdk)
4)apache-tomcat-7.0.85.tar.gz(遠程服務器139上面解壓部署)
上述包提取地址:https://pan.baidu.com/s/1YoEAw34CI0HjTgDyveN43g
提 取 密 碼: 5itt
正式進入jenkins安裝環節:
1、139、140服務器均新建admin用戶並設置密碼
useradd admin
passwd admin
輸入密碼並再次確認即可
2、上傳jdk-8u161-linux-x64.tar.gz到兩台服務器下的admin用戶,
配置局部環境變量.bash_profile並使之生效
參考(局部jdk配置):
http://www.cnblogs.com/qingqing74647464/p/8617212.html
3、上傳apache-maven-3.5.3-bin.tar.gz到140服務器進行安裝解壓
解壓安裝maven參考:
http://www.cnblogs.com/qingqing74647464/p/8796870.html
4、上傳apache-tomcat-7.0.85.tar.gz到遠程服務器139,直接解壓修改bin目錄下的catalina.sh文件,
添加jdk的安裝路徑等信息
執行:
1) tar -zxvf apache-tomcat-7.0.85.tar.gz
2) rm -rf apache-tomcat-7.0.85.tar.gz
3) mv apache-tomcat-7.0.85/ tomcat7/
4) cd tomcat7/bin
5) vi catalina.sh
添加如下內容並保存:
export JAVA_HOME=/home/admin/jdk1.8(自行修改成自己的)
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
5、上傳jenkins.war到140服務器(jdk和maven已經配置好並生效)
執行:java -jar jenkins.war --httpPort=8888 指定端口號,可自行修改
(需自定義jenkins訪問端口執行java -jar jenkins.war --httpPort=8081 ,啟動jenkins,
其中httpPort就是訪問端口設置,否則可直接將war包放在Tomcat里面去跑,一樣的效果;
如果想后台一直運行,那么啟動命令為nohup java -jar jenkins.war --httpPort=8888 &
或者 java -jar jenkins.war --httpPort=8888 后執行bg,再Ctrl + z執行bg后,輸入exit也可以實現效果)
6、打開瀏覽器訪問鏈接http://ip地址:8888(鏈接中ip根據實際情況更改)
7、進入jenkins系統后出現下面界面,點擊下面圖片中紅框中的按鈕
8、點擊后出現如下頁面:
9、等待安裝完畢,出現下面界面,設置用戶名和密碼:
10、點擊Start using Jenkins按鈕后進入下面頁面,點擊“系統管理”:
11、“系統管理”出現下面頁面,點擊“管理插件”:
12、點擊“管理插件”后點擊“可選插件”出現先下面頁面,
13、在過濾位置搜索“maven”,選擇“Maven Integration plugin”,點擊“直接安裝”按鈕:
14、安裝需要等待一段時間,出現下面頁面代表安裝成功,點擊“返回首頁”:
15、在“系統管理”-“管理插件”-“可選插件”下,在過濾中搜索“deploy”,選擇“Deploy to container Plugin”
和“WebSphere Deployer Plugin”,點擊“直接安裝”
16、等待一段時間,顯示完成代表安裝成功
17、在“系統配置”頁面,點擊“Global Tool Configuration”
18、在Global Tool Configuration配置maven和jdk
解釋下面三張圖的參數輸入:
Maven Configuration
Default settings provider:
File path:/home/admin/maven3.5.3/conf/settings.xml(maven的setting.xml文件路徑)
Default global settings provider:
File path:/home/admin/maven3.5.3/conf/settings.xml(maven的setting.xml文件路徑)
JDK
別名:隨便取
JAVA_HOME:服務器上面配置的JAVA_HOME
MAVEN
name:隨便取
MAVEN_HOME:服務器上面配置的MAVEN_HOME
|
19、新增JDK
20、新增Maven
21、配置完成后點擊“Save”保存
22、點擊“系統管理”-> “系統設置”
23、更改Maven項目配置
全局MAVEN_OPTS:-Xms128m -Xmx512m
Local Maven Repository 選擇Local to the executor
創建項目
1、 登錄
2、 點擊登錄進入Jenkins主界面
3、 在 Jenkins主界面點擊右邊“新建”
4、 在出現下面的界面中,創建一個新的Job
1)“Enter an item name”: 輸入新建一個Job的名稱。
2)選擇“構建一個自由風格的軟件項目”,點擊OK即可創建一個新的Job,如圖
5、找到“源碼管理”,選擇“Subversion”,如下圖:
6、在“Repository URL” 設置你的代碼的svn地址,控制好訪問到哪一個文件夾,然后點擊“Add”
下拉按鈕,選擇點擊“Jenkins”:
在打開的頁面中選擇連接repository路徑的密鑰,具體方式在“Kind”中選擇(默認選擇使用
username with password即使用用戶名和密碼方式):
填寫完密鑰后點擊“Add”按鈕保存,在“Credentials”標簽右邊的下拉菜單中選擇對應的密鑰:
Local module directory:這是讓你自己設置代碼存儲到本地工作區的自定義目錄,如果不寫,則代
碼直接放在當前工作區目錄下;如果自定義目錄,則會在工作區創建這個目錄結構,然后代碼存儲
到這個目錄下。例如:
1) 當jenkins的工作空間為默認路徑時“Local module directory”默認值為”.”,如下圖,
代碼將保存到Jenkins工作目錄下的名稱為Job名稱的文件夾中,舉例:
Jenkins工作目錄為/home/admin/.jenkins/workspace
Job名稱為:Test
那么保存的代碼位置也就是job的工作區路徑就為: /home/admin/.jenkins/workspace/Test
1) 自定義Local module directory時,如下圖,舉例說明:
Jenkins工作目錄為/home/admin/.jenkins/workspace
Job名稱為:Test
Local module directory:Helloworld
那么保存的代碼位置就為: /home/admin/.jenkins/workspace/Test/Helloworld
7、 找到“構建觸發器”,勾選“Poll SCM”
在“日程表”中填寫0 0 * * * :表示每天凌晨自動檢查一次,源碼改變了則自動下載構建。
H/5 * * * * : 表示每5分鍾自動檢查一次,源碼改變了則自動下載構建。
兩種方案如下圖所示:
8、 找到“構建”,點擊“增加構建步驟”,選擇“Execute shell”
選擇“Execute shell”后會在頁面生成如下頁面:
在command中填寫shell腳本來執行mvn操作.
舉例(紅色部分根據實際情況修改):
cd $WORKSPACE
cd Helloworld
MAVEN_BIN=/home/admin/maven3.5.3/bin
$MAVEN_BIN/mvn clean install -Dmaven.test.skip=true
注釋:
$WORKSPACE: Job的工作空間路徑,例如:
Jenkins的工作目錄時/home/admin/.jenkins/workspace
Job的名稱為Helloworld
那么,該Job下的$WORKSPACE為:/home/admin/.jenkins/workspace/Helloworld, $WORKSPACE會根據
Job名稱而改變,當Job為test時,TT中的$WORKSPACE也就為/home/admin/.jenkins/workspace/test
MAVEN_BIN : maven的bin文件夾的絕對路徑
zkClient: pom.xml所在的文件夾,這個根據具體pom.xml文件的路徑來寫
-Dmaven.test.skip=true : 這個是指不執行測試用例,也不編譯測試用例類。
9、點擊“保存”,即可保存該job
打包項目
1、在Jenkins主界面,點擊每個Job的下拉按鈕,然后再點擊“立即構建”
2、任務構建狀態說明
- 當前構建狀態分為以下幾種
![]()
|
項目構建完成,同時被認為是穩定的 |
|
項目構建完成,但被認定為不穩定 |
|
構建失敗 |
|
作業已經禁止
|
- 構建穩定行,Jenkins會基於一些后處理器任務為構建發布一個穩健指數(從0-100 ),越高越穩定
|
構建成功率>80% |
|
構建成功率60%-79% |
|
構建成功率40%-59% |
|
構建成功率20%-39% |
|
構建成功率0-19% |
期待任務編譯都處於和 狀態。
job遠程部署(自動部署)
進入系統管理》插件管理,下載“SSH plugin”和 “Publish Over SSH”插件
1、配置SSH Server
點擊“系統管理”-“系統設置”,找到“Publish over SSH”
Passphrase:全局的ssh密碼
SSH Servers : 遠程服務器信息設置區
Name:當前SSH Server的名稱(隨意取)
Hostname:遠程服務器ip地址
Username:遠程服務器的用戶名
Remote Directory :連接遠程服務器路徑(絕對路徑),也是在此路徑下執行shell命令,
默認為/home/admin(根據每台服務器用戶名而改變)。
點擊“高級”,如上圖所示
勾選“Use password authentication, or use a different key”,在“Passphrase / Password”
中輸入遠程服務器用戶名的密碼,比如該處輸入用戶名為“admin”的密碼。
使用“Test Configuration”進行校驗該配置是否通過,如下圖:
當出現“Success”表示通過,也就是可以使用,使用“增加”,可以再創建一個連接遠程服務器的SSH Server。
2、在jobs的配置中找到“構建后操作”,點擊“增加構建后操作步驟”,選擇“Send build artifacts over SSH”
3、配置“Send build artifacts over SSH”
配置說明:
Name:選擇一個SSH Server(包含了遠程服務器的信息)
Source files:這是一個相對路徑,相對於該job的工作區的路徑(存放源碼的路徑),例如:
Source file 為“test/test/target/HelloWorld.war”,那么絕對路徑為:$WORKSPACE/test/test/target/HelloWorld.war,
此處的$WORKSPACE為/home/admin/.jenkins/workspace/test
Remove prefix :移除Source files中的前綴,
例如 Source file為“test/test/target/HelloWorld.war”,如果Remove prefix為空,
jenkins就會在遠程服務器上目標位置創建test/test/target路徑,並在該路徑下存放war包;
如果Remove prefix為“test/test/target”jenkins只會講war包移動至遠程服務器的目標位置。
Remote directory:遠程服務器的目標位置,相對路徑,相對於在“系統設置”中的“Publish over SSH”里
的“SSH Server”設置里的“Remote Directory”的路徑。
例如“Publish over SSH”里的“SSH Server”設置里的“Remote Directory”的沒寫路徑就為默認路徑,
而此處的“Remote directory”為history,那么war包保存在遠程服務器路徑為/home/admin/history中
Exec command :此處寫在遠程服務器上執行的shell腳本
Exec command 腳本:
#jdk環境
export JAVA_HOME=/home/admin/jdk1.8
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
#進入admin用戶主目錄
cd
#執行該文件
sh HelloWorld.sh
HelloWorld.sh文件內容
#tomcat路徑
TOMCAT_HOME=/home/admin/tomcat7
#查看進程並殺掉進程
ID=`ps -ef | grep "$TOMCAT_HOME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
echo $ID
for id in $ID
do
kill -9 $id
echo "killed $id"
done
#刪除舊的war包等
cd $TOMCAT_HOME/webapps
rm -rf site-web*
#拷貝新war包到Tomcat下
cd ../../history/
cp HelloWorld.war $TOMCAT_HOME/webapps
cd ../tomcat7/bin
#啟動tomcat
nohup ./startup.sh
大功告成~~~~~~~~~~~~