1、準(zhǔn)備環(huán)境:
兩臺(tái)機(jī)器
git-server ----https://github.com/bingyue/easy-springmvc-maven
jenkins-server ---47.97.90.120---最好是3個(gè)G以上
java-server -----175.24.61.147
1.部署jenkins服務(wù)器
安裝git客戶端:
[root@jenkins-server ~]# systemctl stop firewalld && setenforce 0
[root@jenkins-server ~]# yum install -y git #安裝git客戶端
[root@jenkins-server ~]# ssh-keygen
[root@jenkins-server ~]# ssh-copy-id -i root@175.24.61.147 #拷貝到后端java服務(wù)器
開始部署jenkins:
1.上傳jdk
[root@jenkins-server ~]# tar -xvzf jdk-8u211-linux-x64.tar.gz -C /usr/local/
[root@jenkins-server ~]# cd /usr/local/
[root@jenkins-server local]# mv jdk1.8.0_211/ java
2.安裝tomcat
[root@jenkins-server ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.45/bin/apache-tomcat-8.5.42.tar.gz
[root@jenkins-server ~]# tar -xvzf apache-tomcat-8.5.45.tar.gz -C /usr/local/
[root@jenkins-server ~]# cd /usr/local/
[root@jenkins-server local]# mv apache-tomcat-8.5.45/ tomcat
3.安裝maven
[root@jenkins-server ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
[root@jenkins-server ~]# tar -xvzf apache-maven-3.5.4-bin.tar.gz -C /usr/local/java/
[root@jenkins-server ~]# cd /usr/local/java
[root@jenkins-server java]# mv apache-maven-3.5.4/ maven
設(shè)置變量:
[root@jenkins-server ~]# vim /etc/profile
JAVA_HOME=/usr/local/java
MAVEN_HOME=/usr/local/java/maven
PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JAVA_HOME MAVEN_HOME
[root@jenkins-server ~]# source /etc/profile
驗(yàn)證:
[root@jenkins-server ~]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
[root@jenkins-server ~]# mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/java/maven
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/local/java/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"
下載jenkins的安裝包:
安裝jenkins:2.196 ----通過官網(wǎng)直接下載war包婶恼。
官網(wǎng):http://updates.jenkins-ci.org/download/war/
[root@jenkins-server ~]# wget http://updates.jenkins-ci.org/download/war/2.196/jenkins.war
部署jenkins
[root@jenkins-server ~]# cd /usr/local/tomcat/webapps/
[root@jenkins-server webapps]# rm -rf *
[root@jenkins-server webapps]# cp /root/jenkins.war .
[root@jenkins-server webapps]# ../bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
瀏覽器訪問47.97.90.120:8080/jenkins
1564326097865.png
如果一直在這個(gè)頁面不跳轉(zhuǎn)稚配,可以看看Tomcat的啟動(dòng)情況畅涂,如果有兩個(gè)Tomcat進(jìn)程,就全部殺死道川,再重啟Tomcat午衰,如果不行,就多等一會(huì)兒吧冒萄,嘻嘻嘻....
1564325564350.png
[root@jenkins-server ~]# cat /opt/jenkins/secrets/initialAdminPassword
b36b8b04c5b84e659701304dfe848999 ---復(fù)制這個(gè)密碼粘貼到上面提示的空格里面臊岸。
1564325665439.png
插件下載需要很長很長一段時(shí)間,慢的話可能需要一兩個(gè)小時(shí)哦
1564333022739.png
1564333246959.png
1564333308573.png
1564333339797.png
3.安裝插件
安裝插件:
所需的插件:
? Maven插件 Maven Integration plugin
? 發(fā)布插件 Deploy to container Plugin
需要安裝插件如下:
=============================================================
安裝插件Deploy to container ---支持自動(dòng)化代碼部署到tomcat容器
Git plugin 可能已經(jīng)安裝
Maven Integration :jenkins利用Maven編譯宦言,打包所需插件
Publish Over SSH :通過ssh連接
ssh 插件
安裝過程:
系統(tǒng)管理--->插件管理---->可選插件--->過濾Deploy to container---->勾選--->直接安裝
1564333462537.png
1564333548629.png
1564333661844.png
1564333727435.png
1564333796321.png
1564333846376.png
1564333976950.png
1564334089020.png
以上所有插件安裝完成
開始配置ssh
1564334209886.png
image.png
1583230332054.png
1583230568264.png
1583230594109.png
image.png
1564334251756.png
1564334451379.png
key:指的是jenkins服務(wù)器用哪個(gè)用戶去遠(yuǎn)程連接程序服務(wù)器就是那個(gè)用戶的私鑰扇单。
[root@jenkins-server .ssh]# cat id_rsa
4.添加遠(yuǎn)程ssh-server:
1564334945023.png
5商模、配置jdk奠旺,maven命令蜘澜,全局配置
1564335018840.png
1570960064941.png
1570960081945.png
1564335123190.png
1564335170709.png
1564335192681.png
6.構(gòu)建發(fā)布任務(wù)
1564335261703.png
1564335284215.png
1564335352695.png
1564341315628.png
此處源碼鏈接為文章開頭給的github倉庫地址
1564335823407.png
此處SSH Server 中Name應(yīng)與前面設(shè)置的一樣
7.調(diào)用maven命令
1564336901231.png
image.png
8.部署java服務(wù)器,做jenkins打包上線
[root@java-server ~]# mkdir -p /data/application
上傳jdk
[root@java-server ~]# tar -xvzf jdk-8u211-linux-x64.tar.gz -C /usr/local/
[root@java-server ~]# cd /usr/local/
[root@java-server local]# mv jdk1.8.0_211/ java
下載tomcat
[root@java-server ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz
[root@java-server ~]# tar xzf apache-tomcat-8.5.42.tar.gz -C /data/application/
[root@java-server ~]# cd /data/application/
[root@java-server application]# mv apache-tomcat-8.5.42/ tomcat
設(shè)置環(huán)境變量
[root@java-server ~]# vim /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/data/application/tomcat
[root@java-server ~]# source /etc/profile
測試:
[root@java-server ~]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
刪除tomcat默認(rèn)發(fā)布目錄下面的內(nèi)容:
[root@java-server ~]# rm -rf /data/application/tomcat/webapps/*
[root@java-server ~]# cd /data/application/tomcat/webapps/
[root@java-server webapps]# ls
創(chuàng)建目錄和腳本:
[root@java-server ~]# mkdir /opt/script #創(chuàng)建腳本目錄
[root@java-server ~]# vim /opt/script/app-jenkins.sh #創(chuàng)建腳本
腳本內(nèi)容在后面:
[root@java-server ~]# chmod +x /opt/script/app-jenkins.sh #添加執(zhí)行權(quán)限
腳本內(nèi)容:
[root@java-server script]# cat app-jenkins.sh
#!/usr/bin/bash
#本腳本適用于jenkins持續(xù)集成响疚,實(shí)現(xiàn)備份war包到代碼更新上線鄙信!使用時(shí)請(qǐng)注意全局變量。
#================
#Defining variables
export JAVA_HOME=/usr/local/java
webapp_path="/data/application/tomcat/webapps"
tomcat_run="/data/application/tomcat/bin"
updata_path="/data/update/`date +%F-%T`"
backup_path="/data/backup/`date +%F-%T`"
tomcat_pid=`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`
files_dir="easy-springmvc-maven"
files="easy-springmvc-maven.war"
job_path="/root/upload"
#Preparation environment
echo "Creating related directory"
mkdir -p $updata_path
mkdir -p $backup_path
echo "Move the uploaded war package to the update directory"
mv $job_path/$files $updata_path
echo "========================================================="
cd /opt
echo "Backing up java project"
if [ -f $webapp_path/$files ];then
tar czf $backup_path/`date +%F-%H`.tar.gz $webapp_path
if [ $? -ne 0 ];then
echo "打包失敗忿晕,自動(dòng)退出"
exit 1
else
echo "Checking if tomcat is started"
if [ -n "$tomcat_pid" ];then
kill -9 $tomcat_pid
if [ $? -ne 0 ];then
echo "tomcat關(guān)閉失敗装诡,將會(huì)自動(dòng)退出"
exit 2
fi
fi
cd $webapp_path
rm -rf $files && rm -rf $files_dir
cp $updata_path/$files $webapp_path
cd /opt
$tomcat_run/startup.sh
sleep 5
echo "顯示tomcat的pid"
echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
echo "tomcat startup"
echo "請(qǐng)手動(dòng)查看tomcat日志。腳本將會(huì)自動(dòng)退出"
fi
else
echo "Checking if tomcat is started"
if [ -n "$tomcat_pid" ];then
kill -9 $tomcat_pid
if [ $? -ne 0 ];then
echo "tomcat關(guān)閉失敗践盼,將會(huì)自動(dòng)退出"
exit 2
fi
fi
cp $updata_path/$files $webapp_path
$tomcat_run/startup.sh
sleep 5
echo "顯示tomcat的pid"
echo "`ps -ef | grep tomcat | grep -v grep | awk '{print $2}'`"
echo "tomcat startup"
echo "請(qǐng)手動(dòng)查看tomcat日志鸦采。腳本將會(huì)自動(dòng)退出"
fi
9.回到j(luò)enkins頁面開始構(gòu)建任務(wù)
1564336717415.png
1564336734472.png
1564336761194.png
1564341387433.png
1571056070912.png
10.登陸java-server服務(wù)器查看:
[root@java-version ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1321/sshd
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 17565/java
tcp6 0 0 :::8009 :::* LISTEN 17565/java
tcp6 0 0 :::8080 :::* LISTEN 17565/java
[root@java-version ~]# cd /data/application/tomcat/webapps/
[root@java-version webapps]# ls
easy-springmvc-maven easy-springmvc-maven.war
查看郵箱,可看到消息
image.png