最近公司在利用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