非常感謝大牛們的分享,項目demo終於自動部署成功~~
相關資料:
嘟嘟的獨立博客 , jenkins for SpringBoot,
久等了,我們進入正題:
環境: centos7 , jdk8 , git2.3.7 ,maven3.5.3 , tomcat8
首先爲了方便管理軟件,我全部裝在/opt這個目錄下:
mkdir java git jenkins maven mysql tomcat
jdk8安裝:
cd java
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"
tar xzf jdk-8u141-linux-x64.tar.gz
配置環境變量:vim /etc/profile
這是我的完整配置,實際根據自己的文件目錄配置,在最下面添加(文件夾名稱我改過):JAVA_HOME=/opt/java/jdk8
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:$MAVEN_HOME/bin:$PATH:$GIT_HOME/bin:$PATH
MAVEN_HOME=/opt/maven/maven3.5.3
GIT_HOME=/opt/git
export JAVA_HOME
export PATH
export CLASSPATH
export MAVEN_HOME
export GIT_HOME
文件生效:source /etc/profile
注意:/etc/profile生效後還要複製到/etc/bashrc,不然重啓服務環境變量失效需要重新source /ect/profilevim /etc/bashrc
生效設置:
source /etc/bashrc
java環境測試:
java -version
Maven安裝:
cd maven
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz
tar zxvf apache-maven-3.5.3-bin.tar.gz
配置環境(同上)!
Maven環境測試:
mvn -v
Tomcat8安裝:
cd tomcat
wget mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz
tar zxvf apache-tomcat-8.5.31.tar.gz
解壓後我改過名字tomcat8.5.31
作用:用來運行jenkins.war包的服務
Git安裝(並關聯github):
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.3.7.tar.gz
tar -zxvf git-2.3.7.tar.gz
cd git-2.3.7
#設置安裝路徑
./configure --prefix=/opt/git
make && make install
配置環境(同上)!
git環境測試:
git --version
如果出現安裝版本不一致,肯定是默認安裝git,先卸載再安裝
相關資料:
jenkins安裝:
兩種安裝方式:
1 : docker (測試過,有點問題,所以放棄)
2 : jenkins.war發佈到tomcat運行(採用)
cd jenkins
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
#將war包複製到之前解壓好的tomcat的webapps下並運行
cp jenkins.war /opt/tomcat/tomcat8.5.31/webapps
環境都搭建好,終於進入jenkins管理界面了:
根據提示找到密碼後登錄註冊
點擊左邊默認推薦暗轉插件
看看這幾個插件有沒有,:
裝好插件後配置jenkins:
歷經千辛萬苦終於可以創建我的第一個任務了:
構建完成後執行的腳本:
/opt/jenkins/stop.sh
/opt/jenkins/replace.sh
BUILD_ID=dontKillMe nohup /opt/jenkins/startup.sh &
具體腳本內容:
stop.sh
# 將應用停止
#stop.sh
#!/bin/bash
echo "Stopping SpringBoot Application"
pid=`ps -ef | grep model.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
replace.sh
#replace.sh 用於將上次構建的結果備份,然後將新的構建結果移動到合適的位置
#!/bin/bash # 先判斷文件是否存在,如果存在,則備份
file="/opt/jenkins/release/jz-blog.jar"
if [ -f "$file" ]
then mv /opt/jenkins/release/jz-blog.jar /opt/jenkins/backup/jz-blog.jar.`date +%Y%m%d%H%M%S`
fi
mv ~/.jenkins/workspace/jz_blog/target/jz-blog.jar /opt/jenkins/release/jz-blog.jar
startup.sh
#startup.sh 啓動項目
#!/bin/sh
echo "授予當前用戶權限"
chmod 777 /opt/jenkins/release/jz-blog.jar
echo "執行....."
java -jar /opt/jenkins/release/jz-blog.jar
shell文件授權:
chmod 777 stop.sh
chmod 777 replace.sh
chmod 777 startup.sh
趕快構建看看!!!
大功告成!!!!!!!
期間遇到的問題:
1.docker安裝jenkins涉及容器通信,需要配置容器類jdk,maven,git的環境配置
2.運行jenkins內存不夠,會導致構建項目jvm內存溢出失敗!!
解決:調整linux的swap交換內存大小,調整爲2G. swap調整