Jenkins是一款使用Java开发的、开源的,项目持续集成工具。
1.安装前环境
1.1.1 JDK安装
JDK1.8 提取码:t4c3
(1)解压
tar -zxvf jdk-8u231-linux-x64.tar.gz
(2)配置环境变量
# 编辑profile文件
vim /etc/profile
添加内容如下:
export JAVA_HOME=/java/jdk8
export CLASSPATH=.:$JAVA_HOME/lib/dt.:jar$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
注意:按照自己的实际java解压路径来填写。
1.1.2 Maven
Maven 提取码:98ut
(1)解压
tar -zxvf apache-maven-3.8.5-bin.tar.gz
(2)配置settings.xml文件
# 进入 解压后maven的conf文件夹(操作时根据自己实际的加压路径)
cd /maven/conf
# 编辑 settings.xml文件
vim setttings.xml
# 添加镜像 这样下载依赖(jar包)时会很快
<mirrors>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
</mirrors>
注意:按照自己的实际maven解压路径来填写。
1.1.3 git
直接使用命令进行安装
yum install git
2.Jenkins安装
1.1 通过war安装Jenkins
Jenkins.war 提取码:wkjn
(1)启动Jenkins
因为我们在安装前环境
中已经安装了JDK
,所以直接运行Jenkin的War包即可:
nohup java -jar jenkins.war & #后台运行
(2)访问Jenkins
默认端口号为8080,在浏览器输入ip地址
+8080
端口即可:
根据页面提示去linux系统中对应的文件目录下找管理员密码。
(3)安装插件、管理用户、配置实例
这里选择安装推荐的插件
,使用war包运行的情况下,不会出现安装推荐插件失败的情况。
到此通过war包的方式安装Jenkins已经完成。
需要特别注意:通过war包的方式安装Jenkins,Jenkins的workspace文件夹和其他文件都是在下面的目录下:
/root/.jenkins/
1.2 通过命令进行安装
(1)下载
wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.190.3-1.1.noarch.rpm
(2)安装
rpm -ivh jenkins-2.190.3-1.1.noarch.rpm
(3)修改配置
修改Jenkins的JDK路径为自己安装的JDK路径。命令如下:
cd /etc/init.d/
vim jenkins
(4)运行Jenkins 查看状态
systemctl start jenkins #运行
systemctl status jenkins #查看状态
显示下面的标识正在运行:
后续的步骤和运行war包的一致。
需要特别注意:通过命令行安装的Jenkins的配置文件和workspace文件夹都是在下面的目录下:
cd /var/lib/jenkins/
Jenkins的配置文件在:
/etc/sysconfig/jenkins
3.Jenkins安装可能遇到的问题
3.1 无法安装安装推荐的插件
(1)问题描述
通过wget命令行下载Jenkins并安装,会出现无法安装插件的问题:
Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed unable to find valid certification path to requested target
或者是:
There were errors checking the update sites: SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification
(2)问题原因
这是因为请求是SSL证书的问题。
(3)问题解决
进入Jenkins的JENKINS_HOME目录:
/var/lib/jenkins/
找到该目录中的hudson.model.UpdateCenter.xml:
修改成以下所示:
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>
返回上一级,找到updates文件夹,然后修改default.json文件,将文件中的所有
http://updates.jenkins-ci.org/download
替换成
https://mirrors.tuna.tsinghua.edu.cn/jenkins
将
http://www.google.com
替换成:
http://www.baidu.com
登陆Jenkins在系统管理
->插件管理
->高级
,配置下站点:
https://updates.jenkins.io/update-center.json
然后再去下载插件。
当然即使配置上面的东西,也会出现下载错误的插件,但是比较少,下面可以把失败的个别插件从Jenkinsc官网插件页面,下载后放到Jenkins中即可。例如:
搜索下载失败的插件:
选择对应的版本(有的版本可能不兼容Jenkins的版本需要升级Jenkins版本)
登陆Jenkins在系统管理
->插件管理
->高级
中上传插件:
4. 配置一个Maven项目
下面我以放到Gitee上面的代码作为例子:
4.1 下载Gitee和Maven插件
登陆Jenkins系统管理
->插件管理
这里我已安装过了,如果安装的话需要到 可选插件
中搜索对应的插件名称进行安装。
4.2 创建Maven项目
新建任务
4.3 配置项目
4.3.1 全局工具配置
(1)配置maven、JDK、git
maven、JDK、git路径就是安装的路径。
4.3.2 系统配置
(1)Gitee配置
那么如何获取Gitee的令牌呢?
登陆Gitee
-> 设置
-> 私人令牌
然后提交。
复制令牌。
4.3.3 项目配置
(1)Gitee链接
此处选择在系统配置
中配置的Gitee链接。
(2)源码管理
- 仓库URL:就是Gitee上面你的仓库地址。
- Credentials认证信息:填写的就是 上面配置的GiteeAPI令牌。
- 分支:你需要Jenkins管理的分支是哪个。根据自己实际情况填写
(3)构建触发器
(4)构建环境
(4)前置步骤(Pre Steps)
(5)Build(重点)
使用Maven来构建项目,命令是:
clean install -Dmaven.test.skip=true
(5)Post Steps(重点)
添加 执行shell
shell脚本解释:
cd /java/project/ # 进入存放项目的文件夹(自定义的)
sh stop.sh # 停止正在运行的旧版本项目 shell脚本
sh replace.sh # 替换编译后的jar包 shell脚本
#启动新编译打包的项目
BUILD_ID=dontKillMe nohup java -jar /java/project/编译后包的名称.jar &
stop.sh 和 replace.sh 内容:
#stop.sh
#找到正在运行旧项目的 编号
#然后停止
pid=`ps -ef | grep 编译后的jar包的名称 | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
#replate.sh
#判断指定路径下的jar包是否存在
#如果存在,更名备份
#将Jenkins打包编译后的项目移动到指定的项目目录下
file="/java/project/编译后包的名称.jar"
if [ -f "$file" ]
then
mv /java/project/编译后包的名称.jar /java/project/编译后包的名称.jar.`date +%Y%m%d%H%M%S`
fi
mv /root/.jenkins/workspace/项目名称/target/编译后包的名称.jar /java/project/
(6)保存配置。
5.构建项目
查看构建日志:
![在这里插入图片描述](
6. 总结
Jenkins构建项目并运行的流程如下:
- 通过运行war包安装的Jenkins,编译后的包是在
/root/.jenkins/workspace/
下面。 - 通过命令安装的Jenkins,编译后的包是在
/var/lib/jenkins/workspace/
下面