第20期:Jenkins

Jenkins简介

开源的基于Java的提供可持续化集成服务的平台

install jenkins on centos7

java11安装

1
yum install java-11-openjdk-devel

说明:使用jdk8可能启动不了jenkins

添加安装Jenkins的yum源

1
curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repo

导入仓库密钥

1
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

安装jenkins最新稳定版

1
yum install jenkins

服务管理

1
systemctl start jenkins

说明:

  • 越新版本的jenkins可能需要的jdk版本越高,jdk11适配jdk8却不一定

开放8080端口

1
2
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload

设置Jenkins

1
2
http://your_ip_or_domain:8080
sudo cat /var/lib/jenkins/secrets/initialAdminPassword # 获取临时密码

选择Install suggested plugins box后继续,创建admin用户。

jenkins工作目录:

1
2
/var/lib/jenkins/
/var/lib/jenkins/config.xml # 配置文件

jenkins重置密码

1
2
3
4
编辑/var/lib/jenkins/users/admin_491010919283058211/config.xml  # admin_491010919283058211需要根据你的实际文件名调整

# 替换<passwordHash>成下列内容:
<passwordHash>#jbcrypt:$2a$10$ltzg1Kwtef0ymmNAqR8JR.961lHdnrsoFsE.huZ.G4r1AiIaENRC6</passwordHash>

说明:

  • #jbcrypt:$2a$10$ltzg1Kwtef0ymmNAqR8JR.961lHdnrsoFsE.huZ.G4r1AiIaENRC6是hash加密123456后的值。

部署java项目实践

配置JDK

1
Manage Jenkins - Global Tool Configuration - JDK(不选择自动安装)- 配置name和JAVA_HOME为`/usr/local/java/jdk1.8.0_351` - 保存

说明:

  • 若选择自动安装需要设置oracle账号密码
  • 手动安装jdk8步骤
    mkdir /usr/local/java
    tar -xzvf jdk-8u351-linux-x64.tar.gz (jdk-8u351-linux-x64.tar.gz包自行到java官网下载),解压后生成目录jdk1.8.0_351

配置MAVEN

1
Add Maven - 命名 - Install Automatically - 选择版本3.8.6 - 保存

安装插件 Maven Integration,具体步骤:

1
Manage Jenkins - Manage Plugins - 可选插件 - 搜索maven - 安装Maven Integration

安装完后,创建一个项目:

1
new Item - 命名emog-test - 选择构建一个maven项目 - 保存

进入project:emog-test

1
点击配置 - 设置git:git@192.168.31.87:alias/emog.git

Pre Steps
选择执行shell

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mvn clean install

num=`ls target/emog*.jar | wc -l`

[[ $num -ne 1 ]] && { echo "num is not equal 1"; exit 1; }
echo "continue"
jar_path=`ls target/emog*.jar`
jar=`basename "$jar_path"`


\cp -fp target/$jar /opt/emog/jar
\cp -fp /opt/emog/jar/$jar /opt/emog/emog.jar

cd /opt/emog && sh restart.sh

说明:restart.sh内容

1
2
3
4
5
6
7
8
9
workspace=/opt/emog
cd $workspace
pid=`ps aux|grep "java -jar emog.jar"|grep -v grep|awk '{print $2}'`

if [[ $pid ]];then
kill $pid && nohup java -jar emog.jar &
else
nohup java -jar emog.jar &
fi

说明:su jenkins非登录用户没有bash环境,可以使用su -s /bin/bash jenkins以jenkin身份进入。

设置邮件模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<hr/>
Project:$PROJECT_NAME<br/><hr/>

No.:#$BUILD_NUMBER<br/><hr/>

GIT:${GIT_REVISION}<br/><hr/>

Status:$BUILD_STATUS<br/><hr/>

User:${CAUSE}<br/><hr/>

Console:<a href="$BUILD_URL">$BUILD_URL</a><br/><hr/>

Console Logs:<a href="${BUILD_URL}console">${BUILD_URL}console</a><br/><hr/>

${JELLY_SCRIPT,template="html"}<br/><hr/>