Jenkins Linux下安装 自动部署

Jenkins Linux下安装 自动部署

由于公司需要,第一次自己配置Jenkins,查阅了多个博主的博客最终配置成功后想写篇博客记录一下,于是周末在家用自己的阿里云服务器上从搭建Jenkins到配置了一次并写下这篇博客,


一、Jenkins安装配置

1.第一种方式:采用YUM方式安装

//安装wget命令
yum install wget

加入jenkins安装源:(建议使用第一种)

//下载相关依赖
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
//导入秘钥
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

执行yum命令安装

yum -y install jenkins

2.第二种方式:采用RPM安装包方式(下载太慢)

Jenkins安装包下载地址

wget https://pkg.jenkins.io/redhat-stable/jenkins-2.190.1-1.1.noarch.rpm

执行安装:

rpm -ivh jenkins-2.190.1-1.1.noarch.rpm

3.配置

修改配置文件:

vi /etc/sysconfig/jenkins

找到并修改修改内容:

# 修改为对应的目标用户, 这里使用的是root
$JENKINS_USER="root"
# 服务监听端口,默认是8080,修改为2020
JENKINS_PORT="2020"

修改目录权限:

chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

修改完重启jenkins,启动相关命令

#重启jenkins
systemctl restart jenkins
#查看jenkins状态
systemctl status jenkins
#启动jenkins
systemctl start jenkins
#设置开机自启动
systemctl enable jenkins

如果启动失败, 出现错误信息:

Starting Jenkins bash: /usr/bin/java: No such file or directory

在这里插入图片描述创建JAVA环境的软链接:

#获取jdk所在的包路径
[root@localhost bin]# whereis java
java: /usr/bin/java /usr/java/jdk1.8.0_161/bin/java
# 然后创建软链接
ln -s /usr/java/jdk1.8.0_161/bin/java /usr/bin/java
#最终结果

在这里插入图片描述

#最后:重新启动jenkins
systemctl start jenkins

4.管理后台初始化设置

http://IP:2020/
ip+刚设置的端口访问即可,第一次启动有点慢,等待即可,
需要输入管理密码, 在以下位置查看:

cat /var/lib/jenkins/secrets/initialAdminPassword

输入完密码会提示安装插件,把建议的都安装上
这一步等待时间较长, 安装完成之后, 创建管理员用户:
在这里插入图片描述
配置访问地址:在这里插入图片描述
配置完成之后, 会进行重启, 之后可以看到管理后台:
在这里插入图片描述

二、Jenkins插件安装

在实现持续集成之前, 需要确保以下插件安装成功。
Maven Integration plugin: Maven 集成管理插件。
Publish Over SSH:远程文件发布插件。
SSH: 远程脚本执行插件。

以下两个插件根据需要选择
Docker plugin: Docker集成插件。
GitLab Plugin: GitLab集成插件。

1.进入【系统管理】-【插件管理】

在这里插入图片描述

2. 点击标签页的【可选插件】

在过滤框中搜索插件名称
在这里插入图片描述

3.勾选插件, 点击直接安装即可

注意,如果没有安装按钮,需要更改配置

在安装插件的高级配置中,修改升级站点的连接为:http://updates.jenkins.io/update-center.json 保存
在这里插入图片描述
然后下拉
在这里插入图片描述

三.持续集成生产配置

在这里插入图片描述

jdk配置

在这里插入图片描述
去掉自动安装勾选,手动填入jdk安装目
在这里插入图片描述
取个名字,填入目录即可,不知道安装目录的百度搜一大堆教程查看Linux下jdk安装目录,这里就不做教程了
在这里插入图片描述

maven配置

在这里插入图片描述
取名字,选择版本
在这里插入图片描述
最后保存即可

四、配置需要部署的项目

新建一个item
在这里插入图片描述
输入你的项目名字,选择构建一个maven项目,如果没有这个选项,则代表你Maven Integration plugin: Maven 集成管理插件没装!

在这里插入图片描述

General下不要勾选,源码管理选择git
在这里插入图片描述
配置远程仓库地址
在这里插入图片描述

点击点击配置凭证,也就是远程仓库的账号密码
在这里插入图片描述
账号密码填写远程仓库账号密码,ID,描述随意
在这里插入图片描述
这里选择刚配置好的凭证
在这里插入图片描述
在这里插入图片描述
这里分支先别管,默认master分支就好,最后教你怎么构建指定分支
在这里插入图片描述
构建触发器不要勾选
在这里插入图片描述
构建环境也是,不需要勾选
在这里插入图片描述
点击Build
在这里插入图片描述
配置好maven执行的命令即可
在这里插入图片描述
保存应用
在这里插入图片描述
点击立即构建,到这里还没完,一步步来,还需要配置自动部署,先构建,看git和maven有没有配置不对的地方
在这里插入图片描述
点击这个时间会进入这个页面,#3是第三次构建的意思,第一次构建应该显示#1
在这里插入图片描述
点击控制台
在这里插入图片描述

这里会打印Jenkins构建信息,第一次构建时间比较久,因为我们maven是没安装的,勾选的自动安装,这里Jenkins会帮我们安装,安装好后会从远程仓库拉去代码然后执行你设置好的maven命令,第一次执行maven命令也比较久,因为会下载所需要的依赖,这里等待即可
在这里插入图片描述
控制台显示此信息代表你远程仓库账号密码不对,我就出现了,修改正确后重新构建即可,远程仓库账号密码配置正确,Jenkins首先会给我们安装git,然后拉取代码,然后安装maven,然后执行maven命令
在这里插入图片描述
如图,代表maven正在下载所需依赖,等待即可
在这里插入图片描述
成功了
在这里插入图片描述
最后会看到Finished: SUCCESS代表构建成功,此时Jenkins帮我们从远程仓库拉取代码并打包好了,我们还需要让他自动部署,首先就得知道打包完的jar包在哪,别急,控制台有,仔细看
/var/lib/jenkins/workspace/ming
我的在这个目录下,可以cd进去看看,整个项目打包后的文件都在这个文件目录下,ming是你设置的item的名称,你Jenkins上的这个名称改变了打包后路径也会发生改变
在这里插入图片描述
找到你的jar包目录地址,并记录好,自动部署需要用到的,此时我认为你已经找到了Jenkins自动打包后的jar包地址,我们开始配置自动部署

五、Jenkins自动部署

1.配置自动部署地址

也就是配置jar包部署到哪里,目标服务器地址,可以是配置Jenkins的服务器也可以是其他服务器
在这里插入图片描述
拉到最下面
在这里插入图片描述

如果你没有这个选项,那么你检查下要求安装的插件是否全部安装
在这里插入图片描述
点击新增
在这里插入图片描述
输入名称,IP地址,账号,还有这个“/”最后点击高级
在这里插入图片描述
勾选这个
在这里插入图片描述

输入服务器密码,下面设置ssh连接的端口和超时时间,默认的即可

在这里插入图片描述
这里可以测试一下连接是否正常
在这里插入图片描述
Success,表示配置正确,点击应用保存即可

2.配置shell脚本

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加构建后操作
在这里插入图片描述
如果没有这个,那么你检查下要求安装的插件是否全部安装
在这里插入图片描述
选择刚刚配置好的服务器

在这里插入图片描述

ec command中是要通过SSH去服务器上执行的脚步以及脚本文件;
Source files配置:target/xxx-0.0.1-SNAPSHOT.jar 项目jar包名
Remove prefix:target/
Remote directory: 代码应用服务器的目录地址,
Exec command:应用服务器对应的脚本。

shell脚本

#!/bin/bash
#服务名称,这里需要改成你的服务名称
SERVER_NAME=ming-start
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行 
# 这里也需要改成你的jar包名称 ,我的后面带-exec,你的不带就别加了
JAR_NAME=ming-start-1.0-SNAPSHOT-exec
# 源jar路径  
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录,这里改成你的Jenkins打包生成的jar包地址,上面有说让你去找这个地址并让你记住,
JAR_PATH=/var/lib/jenkins/workspace/ming/ming-start/target/
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建,这个目录地址代表你需要把jar包复制到那个目录去执行,因为我们不可能在Jenkins打包的路径下去执行你的jar
JAR_WORK_PATH=/root/service

echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
	kill -9 $id  
	echo "killed $id"  
done
echo "结束进程完成"

#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar

BUILD_ID=dontKillMe nohup java -jar  $JAR_NAME.jar  &

其余的都不要动,你只需要改路径,改jar包名称即可,我只是在原博主的代码上增加了一些注释

我把脚本放在/root/service目录下
在/root/service目录下执行touch start.sh命令
然后vim start.sh 把配置好的脚本复制进去保存退出即可

3.配置构建指定分支

装插件:Git Parameter
在这里插入图片描述
装完,在你的项目配置里面配置
在这里插入图片描述
有的显示"Git Parameter",选择即可
在这里插入图片描述

在"名称"中填写变量名,这里还是填写为branch,因为下面会用到这个变量。
在"描述"中填写描述语句,方便用户理解,为了简单明了,这里填写"选择分支"。
在"参数类型"中选择"分支或标签"。
在"默认值"中填写默认的分支名,只有当你在构建时没有在select框中选择分支,才会用这个默认值来作为要构建的分支,这里填写远程的master分支。

在这里插入图片描述
应用保存后
在这里插入图片描述
点击Build with Parameters右边就会出现所有分支的名称,选择分支后再次点击构建就会构建此分支的代码
在这里插入图片描述
构建完你会发现不是成功,但是部署成功了,这个问题是构建后执行的脚本没有正常退出导致,需要修改脚本执行方法
在这里插入图片描述
项目配置,构建后操作,高级
在这里插入图片描述
这里打勾

在这里插入图片描述
脚本启动方式采用nohup sh 脚本目录,应用保存后,重新构建项目
在这里插入图片描述
OK,构建成功,如果发现项目没有启动则去/root/service查看jar包有没有复制过来,如果没有,检测shell脚本里面的目录路径是否正常,如果目录路径正常,就是Linux权限问题导致没办法把jar包复制到此目录

4.以当前日期做文件名生成日志文件

项目启动发现没有nohup.out文件怎么办,继续修改脚本咯
在这里插入图片描述
在这里插入图片描述

time=$(date "+%Y-%m-%d %H:%M:%S")
BUILD_ID=dontKillMe nohup java -jar  $JAR_NAME.jar  >$time.txt &

就不对代码进行过多解释了,很简单,修改完脚本,保存,查询构建即可
在这里插入图片描述

六、致谢

感谢以下博主的博客提供参考
1.Jenkins实现SpringBoot项目自动部署:https://yanglinwei.blog.csdn.net/article/details/106379935
2.jenkins配置:https://blog.csdn.net/weixin_45843683/article/details/113860794
3.jenkins插件配置:https://blog.csdn.net/zjh_746140129/article/details/80904789
4.jenkins执行脚本不退出:https://blog.csdn.net/u013066244/article/details/52788407
5.选择构建分支:https://blog.csdn.net/wc1695040842/article/details/102228804

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值