部署應(yīng)用Jenkins+Github+Tomcat實(shí)戰(zhàn)

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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末咕幻,一起剝皮案震驚了整個(gè)濱河市渔伯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌肄程,老刑警劉巖锣吼,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蓝厌,居然都是意外死亡玄叠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門拓提,熙熙樓的掌柜王于貴愁眉苦臉地迎上來读恃,“玉大人,你說我怎么就攤上這事代态『唬” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵胆数,是天一觀的道長肌蜻。 經(jīng)常有香客問我,道長必尼,這世上最難降的妖魔是什么蒋搜? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮判莉,結(jié)果婚禮上豆挽,老公的妹妹穿的比我還像新娘。我一直安慰自己券盅,他們只是感情好帮哈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著锰镀,像睡著了一般娘侍。 火紅的嫁衣襯著肌膚如雪咖刃。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天憾筏,我揣著相機(jī)與錄音嚎杨,去河邊找鬼。 笑死氧腰,一個(gè)胖子當(dāng)著我的面吹牛枫浙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播古拴,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼箩帚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了黄痪?” 一聲冷哼從身側(cè)響起膏潮,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎满力,沒想到半個(gè)月后焕参,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡油额,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年叠纷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片潦嘶。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涩嚣,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出掂僵,到底是詐尸還是另有隱情航厚,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布锰蓬,位于F島的核電站幔睬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏芹扭。R本人自食惡果不足惜麻顶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舱卡。 院中可真熱鬧辅肾,春花似錦、人聲如沸轮锥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至新娜,卻和暖如春赵辕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杯活。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工匆帚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留熬词,地道東北人旁钧。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像互拾,于是被迫代替她去往敵國和親歪今。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容