一、安装
1.下载并安装启动
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.过程中如果出现以下错误,则修改实际java安装位置。
Starting jenkins (via systemctl): Job for jenkins.service failed. See 'systemctl status jenkins.service' and 'journalctl -xn' for details. [FAILED]
1)打开jenkin启动配置文件
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
二、结合Git+Maven实现java项目的持续集成
1.安装插件
1)自动
Manage Jenkins ->Manage Plugins ->可选插件
2)手动
Manage Jenkins ->Manage Plugins ->高级
3)插件下载地址
搜索:https://plugins.jenkins.io/
列表:https://updates.jenkins-ci.org/download/plugins/
2.Jenkins系统设置
进入Manage Jenkins -> Global Tool Configuration 目录下进行配置。
一下所需环境均与jenkins安装于同一服务器,直接指定实际安装位置即可。
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的服务器中运行 ssh-keygen 一路回车yes (注意是否覆盖原私钥)
然后,cat ~/.ssh/id_rsa 查看私钥 并复制秘钥内容 -> 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 将私钥传给目标服务器 构建免密连接
Test Configuration -> Success 测试成功
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
点击 添加 -> jenkins
其次
Domain | 全局
类型 | GitLab API token
范围 | 全局
API token | 6yQH6YTBEGhpRFtTLvb2
ID |
描述 | 192.168.20.105 的 GitLab
点击 添加
测试
Test Configuration -> Success 测试成功
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 [email protected]
6.配置maven项目
1)General
描述 | scats-import 测试
GitHub项目
项目 URL | [email protected]:productbusiness/scats-import.git/
GitLab Connection | 192.168.20.105
2)源码管理
Git
Repository URL | [email protected]:productbusiness/scats-import.git
Credentials | 私钥认证(重点!!! 即使git公钥认证,gitlabtoken令牌认证,此处仍需私钥认证)
3)Build
Root POM | pom.xml
Goals and options | clean package -Dmaven.test.skip=true
4)构建后操作(打好包后推到服务器)
安装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项目需要,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
注意事项!!
1、Remote prefix:是Source files需要删除的前缀(war包所属相对路径的前缀)。Source files 减 Remote prefix 能拿到纯粹的war包
2、Remote directory为Publish over SSH步骤后的相对路径;Exec command为绝对路径。 均为目标服务器路径
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
三、结合Git+NodeJs 实现前端项目的持续集成
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 ./ #进入node安装目录,执行
3.jenkins全局配置
Global Tool Configuration
NodeJS
别名 | NodeJs v10.15.0
安装目录 | /home/nodejs/node-v10.15.0-linux-x64/bin
#安装目录到 实际目录的bin层为止!
4.创建前端项目
- 创建一个自由风格的项目
2)General
描述 | signalExpert 信号专家前端
GitLab Connection | 192.168.20.105
3)源码管理
Git
Repository URL | [email protected]:productbusinessfront/hangzhousingalexpertv2.git
Credentials | root
4)构建环境
Provide Node & npm bin/ folder to PATH
NodeJS Installation | NodeJs v10.15.0
npmrc file | - use system default -
Cache location | Default
5)构建
Execute shell
npm install
npm run build
cd dist
rm -rf signalExpert.tar.gz #删除上次打包生成的压缩文件
tar -zcvf signalExpert.tar.gz * #把生成的项目打包成test方便传输到远程服务器
6)构建后操作
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
启动脚本
举例如下
#!/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;