一、安裝
1.下載并安裝啟動(dòng)
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
sudo service jenkins start
2.過(guò)程中如果出現(xiàn)以下錯(cuò)誤,則修改實(shí)際java安裝位置。
Starting jenkins (via systemctl): Job for jenkins.service failed. See 'systemctl status jenkins.service' and 'journalctl -xn' for details. [FAILED]
1)打開(kāi)jenkin啟動(dòng)配置文件
vim /etc/init.d/jenkins
2)修改java路徑如下
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
/usr/bin/java
/usr/java/jdk1.8.0_171/bin/java
3)重新加載
systemctl daemon-reload
二席吴、結(jié)合Git+Maven實(shí)現(xiàn)java項(xiàng)目的持續(xù)集成
1.安裝插件
1)自動(dòng)
Manage Jenkins ->Manage Plugins ->可選插件
2)手動(dòng)
Manage Jenkins ->Manage Plugins ->高級(jí)
3)插件下載地址
搜索:https://plugins.jenkins.io/
列表:https://updates.jenkins-ci.org/download/plugins/
2.Jenkins系統(tǒng)設(shè)置
進(jìn)入Manage Jenkins -> Global Tool Configuration 目錄下進(jìn)行配置。
一下所需環(huán)境均與jenkins安裝于同一服務(wù)器捞蛋,直接指定實(shí)際安裝位置即可孝冒。
1)新增jdk
別名 | jdk1.8
JAVA_HOME | /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64
2)新增Git
Name | git
Path to Git executable | /usr/bin/git
3)新增maven
name | maven
MAVEN_HOME | /opt/apache-maven-3.6.1
3.配置publish over ssh:
1)安裝Publish Over SSH插件
2)Manage Jenkins -> Configure System ->Publish over SSH 下配置
首先,在安裝jenkins的服務(wù)器中運(yùn)行 ssh-keygen 一路回車yes (注意是否覆蓋原私鑰)
然后襟交,cat ~/.ssh/id_rsa 查看私鑰 并復(fù)制秘鑰內(nèi)容 -> key
3) SSH Servers配置
SSH Server
Name | 192.168.25.98
Hostname | 192.168.25.98
Username | root
Remote Directory | /usr/local/tomcat
ssh-copy-id -i 192.168.25.98 將私鑰傳給目標(biāo)服務(wù)器 構(gòu)建免密連接
Test Configuration -> Success 測(cè)試成功
4.配置gitlib
1)jenkins中安裝Gitlib插件迈倍,步驟如上。
2)Gitlib中生成API令牌
setting -> Access Tokens
Name | jenkins
Expires at | YYYY-MM-DD
勾選 api
3)Manage Jenkins -> Configure System -> 配置 -> Gitlab
首先
Connection name | 192.168.20.105
Gitlab host URL | http://192.168.20.105:8888
點(diǎn)擊 添加 -> jenkins
其次
Domain | 全局
類型 | GitLab API token
范圍 | 全局
API token | 6yQH6YTBEGhpRFtTLvb2
ID |
描述 | 192.168.20.105 的 GitLab
點(diǎn)擊 添加
測(cè)試
Test Configuration -> Success 測(cè)試成功
5.安裝git
yum install git #安裝
cat ~/.ssh/id_rsa.pub #查看公鑰
SSH Keys Add SSH Keys #gitlib中添加公鑰
ssh-rsa AAA******************************abYbpG9LGv/EfAV4Uulc4YreEcTfVfVgqFpQn+rCUiKZlYj1xEEjjsgm0ksnbn02sRkL4************************************************************avGXSE+3EM******************************a50n4Iqk7G5D1qkfaoIRYw******************************aZtznmmii8xQyIWDri******************************ai4yD28XUYLPbW3jAlaK5+vjvq******************************aD2jIpUDmCNChLvNyPonb0+L/Mxe******************************a root@localhost.localdomain
6.配置maven項(xiàng)目
1)General
描述 | scats-import 測(cè)試
GitHub項(xiàng)目
項(xiàng)目 URL | git@192.168.20.105:productbusiness/scats-import.git/
GitLab Connection | 192.168.20.105
2)源碼管理
Git
Repository URL | git@192.168.20.105:productbusiness/scats-import.git
Credentials | 私鑰認(rèn)證(重點(diǎn)5酚颉L淙尽! 即使git公鑰認(rèn)證焕梅,gitlabtoken令牌認(rèn)證迹鹅,此處仍需私鑰認(rèn)證)
3)Build
Root POM | pom.xml
Goals and options | clean package -Dmaven.test.skip=true
4)構(gòu)建后操作(打好包后推到服務(wù)器)
安裝deploy插件
Send build artifacts over SSH
web層配置
Source files | target/*.war
Remote prefix | target
Remote directory | /recommandWeb/tomcat/webapps
Exec command | /home/jenkins/sh/deploy.sh
svc層配置(dubbo項(xiàng)目需要,mvc只需要web層)
Source files | enjoyor-superpower-traffic-svc/target/*.war
Remote prefix | enjoyor-superpower-traffic-svc/target/
Remote directory | /trafficSvc/tomcat/webapps
Exec command | /home/jenkins/sh/trafficsvc.sh
注意事項(xiàng)U暄浴斜棚!
1、Remote prefix:是Source files需要?jiǎng)h除的前綴(war包所屬相對(duì)路徑的前綴)该窗。Source files 減 Remote prefix 能拿到純粹的war包
2弟蚀、Remote directory為Publish over SSH步驟后的相對(duì)路徑;Exec command為絕對(duì)路徑酗失。 均為目標(biāo)服務(wù)器路徑
5)deploy.sh是自己寫shell腳本的文件
舉例如下:
#!/bin/bash
echo "************* 刪除 舊包 *************"
cd /usr/local/services/services/service/interSvc/tomcat/webapps; rm -rf intersvc
echo "************* tomcat shutdown *************"
cd /usr/local/services/services/service/interSvc/tomcat/bin; ./shutdown.sh
echo "************* tomcat startup *************"
cd /usr/local/services/services/service/interSvc/tomcat/bin; ./startup.sh
7.修改工作空間和日志的路徑
service jenkins stop
cd /etc/sysconfig
vim jenkins
JENKINS_HOME="/home/jenkins/workspace"
JENKINS_USER="root"
service jenkins start
三义钉、結(jié)合Git+NodeJs 實(shí)現(xiàn)前端項(xiàng)目的持續(xù)集成
1.Manage Plugins
安裝nodejs插件操作 同上
2.下載nodejs和npm
wget https://npm.taobao.org/mirrors/node/v10.15.0/node-v10.15.0-linux-x64.tar.xz
tar xf node-v10.15.0-linux-x64.tar.xz
cd node-v10.15.0-linux-x64/
./bin/node -v
ln -s /home/nodejs/node-v10.15.0-linux-x64/bin/node /usr/bin/
ln -s /home/nodejs/node-v10.15.0-linux-x64/bin/npm /usr/bin/
chown -R root:root ./ #進(jìn)入node安裝目錄,執(zhí)行
3.jenkins全局配置
Global Tool Configuration
NodeJS
別名 | NodeJs v10.15.0
安裝目錄 | /home/nodejs/node-v10.15.0-linux-x64/bin
#安裝目錄到 實(shí)際目錄的bin層為止规肴!
4.創(chuàng)建前端項(xiàng)目
- 創(chuàng)建一個(gè)自由風(fēng)格的項(xiàng)目
2)General
描述 | signalExpert 信號(hào)專家前端
GitLab Connection | 192.168.20.105
3)源碼管理
Git
Repository URL | git@192.168.20.105:productbusinessfront/hangzhousingalexpertv2.git
Credentials | root
4)構(gòu)建環(huán)境
Provide Node & npm bin/ folder to PATH
NodeJS Installation | NodeJs v10.15.0
npmrc file | - use system default -
Cache location | Default
5)構(gòu)建
Execute shell
npm install
npm run build
cd dist
rm -rf signalExpert.tar.gz #刪除上次打包生成的壓縮文件
tar -zcvf signalExpert.tar.gz * #把生成的項(xiàng)目打包成test方便傳輸?shù)竭h(yuǎn)程服務(wù)器
6)構(gòu)建后操作
Send build artifacts over SSH
Name 192.168.25.98_web
Source files | dist/signalExpert.tar.gz
Remote prefix | dist
Remote directory | trafficWeb/tomcat/webapps
Exec command | /home/jenkins/sh/trafficweb_signalExpert.sh
啟動(dòng)腳本
舉例如下
#!/bin/bash
echo "************* 刪除 舊包 *************"
cd /usr/local/tomcat/trafficWeb/tomcat/webapps; rm -rf signalExpert;
echo "************* 解 壓 *************"
mkdir dist;
tar -zxvf signalExpert.tar.gz -C dist;
echo "************* 刪除 壓縮包 *************"
rm -rf signalExpert.tar.gz;
echo "************* 重命名 *************"
mv dist/ signalExpert;