最近公司在利用jenkins自动部署springboot应用,以前别人配的那个jenkins虽说可以正常部署,但是多次反复部署之后jenkins会报错,提示内存不足:
maven jvm terminated unexpectedly with exit code 137
原因是因为jenkins没有配置部署新的应用前先把旧的应用进程先kill掉而导致在服务器上有多个应用进程。因此自己决定摸索如何配置jenkins可以每次部署都把旧进程kill掉再启动新进程。
安装jenkins
安装命令:
1
2
3
|
sudo wget -o /etc/yum.repos.d/jenkins.repo http: //pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm -- import https: //jenkins-ci.org/redhat/jenkins-ci.org.key
sudo yum install jenkins
|
启动/停止jenkins:
1
2
|
sudo service jenkins start/stop/restart
sudo chkconfig jenkins on
|
安装完成后,默认端口是8080,可以在启动日志中查看管理员密码,日志路径:/var/log/jenkins/jenkins.log;
安装jenkins后,启动jenkins需要java环境,如果启动报错记得查看服务器是否安装了jre;
此时还不能通过ip和端口访问jenkins,还要配置防火墙:
1
2
3
4
5
6
7
8
9
10
11
|
vim /etc/yum.repos.d/jenkins.repo #需要root权限
#在文件中写入如下内容:
firewall-cmd --permanent -- new -service=jenkins
firewall-cmd --permanent --service=jenkins --set- short = "jenkins service ports"
firewall-cmd --permanent --service=jenkins --set-description= "jenkins service firewalld port exceptions"
firewall-cmd --permanent --service=jenkins --add-port= 8080 /tcp
firewall-cmd --permanent --add-service=jenkins
firewall-cmd --zone= public --add-service=http --permanent
firewall-cmd --reload
#保存退出
firewall-cmd --list-all
|
到此为止,jenkins基本安装完成了,在浏览器输入ip:prot 就可以访问了。
一、首先需要先配置好jenkins的基本配置,这些就不在这里一一详述了,只写一个publish over ssh的
1、先安装好该插件 :publish over ssh
2、配置如下:
点开下面的高级配置登录linux服务器的密码。
2、然后就是配置部署项目的东西了。
配置从源码库拉取代码:
构建环境中勾选,代码构建的过程中会将日志打印出来
pre steps和build:
post steps:
exec command中是要通过ssh去服务器上执行的脚步以及脚本文件;
source files配置:target/xxx-0.0.1-snapshot.jar 项目jar包名
remove prefix:target/
remote directory: 代码应用服务器的目录地址,
exec command:应用服务器对应的脚本。
以下是脚本文件内容:
stop.sh
1
2
3
4
5
6
7
8
|
#!/bin/bash
echo "stop springboot bappapiserverapplication"
pid=`ps -ef | grep ejoyst-bappapi-gateway.jar | grep -v grep | awk '{print $2}' `
echo “旧应用进程id:$pid”
if [ -n "$pid" ]
then
kill - 9 $pid
fi
|
start.sh
1
2
3
4
5
6
7
8
9
|
#!/bin/bash
export java_home=/usr/java/jdk1. 8 .0_161
echo ${java_home}
echo "授权当前用户"
chmod 777 /opt/deploy/ejoyst-bappapi-gateway.jar
echo "执行...."
cd /opt/deploy/
nohup ${java_home}/bin/java -jar ejoyst-bappapi-gateway.jar > /dev/ null &
echo "启动成功"
|
构建后操作中 配置archive the artifacts:内容是当前构建应用的jar包或者war包的相对路径,
这样可以在部署成功页面看到,可以直接点击下载:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/fakerblog/p/8482682.html