jenkins + centos + gitee +maven 安裝配置自動(dòng)部署

一妓羊、安裝jenkins

下載jenkins安裝包
https://www.jenkins.io/zh/download/

安裝
rpm -ivh jenkins-2.222.1-1.1.noarch.rpm

配置文件路徑

/etc/sysconfig/jenkins

啟動(dòng)

service jenkins start

admin默認(rèn)密碼

/var/lib/jenkins/secrets/initialAdminPassword 

默認(rèn)端口8080

登錄管理頁面

二囚衔、安裝插件

登錄管理頁面

先安裝 Localization: Chinese (Simplified) (中文語言)

插件安裝重啟,改成中文面后昧旨,點(diǎn)擊右下角的 ‘jenkins中文社區(qū)標(biāo)簽’ → 更新中心鏡像設(shè)置
默認(rèn)中心地址锌半,下載很慢

更換鏡像地址后纳本,再安裝插件

Maven Integration plugin
Gitee Plugin
Publish Over SSH (遠(yuǎn)程部署需要)

配置環(huán)境

manage jenkins → 系統(tǒng)設(shè)置
Gitee 配置
Publish over SSH 配置

manage jenkins → 全局工具配置
JDK 配置
Git 配置
Maven 配置

三、新建Item

選擇構(gòu)建一個(gè)maven項(xiàng)目

image.png
2710347-4c2f64bfd45284d3.png
配置webhook
微信截圖_20200428183013.png
maven 打包命令
image.png
構(gòu)建后傳輸?shù)竭h(yuǎn)程服務(wù)器缴挖,執(zhí)行部署腳本
image.png
配置好后,應(yīng)用

代碼提交pro分支后自動(dòng)構(gòu)建部署

四焚辅、部署腳本

#!/bin/sh
#########
# jenkins 部署腳本
# by zhangjianyong 2020年4月23日
#########

#APP
APP_HOME="/home/jenkins/app" 
APP_NAME="app.jar"
#備份變量
BACK_TIME=$(date +%F_%H_%M_%S)
BACK_HOME="$APP_HOME/backup"
#編譯輸出
TARGET_HOME="/home/jenkins/target"
TARGET_NAME="app.jar"



#使用說明映屋,用來提示輸入?yún)?shù)
usage() {
    echo "Usage: $0 [start|stop|restart|status|rollback|list|deploy]"    
    echo "start:啟動(dòng)"
    echo "stop:停止"
    echo "restart:重啟"
    echo "status:狀態(tài)"
    echo "list:備份列表"
    echo "rollback:回滾"
    echo "deploy:部署" 
    exit 1
}

#檢查程序是否在運(yùn)行
is_exist() { 
    pid=`ps -ef |grep java | grep $APP_NAME | grep -v grep | awk '{print $2}' `
    #如果存在返回1,不存在返回0
    if [ -z "${pid}" ]; then
        return 0
    else
        return 1
    fi
}


# 啟動(dòng)命令
start() {
        source ~/.bash_profile
    is_exist
    if [ $? -eq "1" ]; then
        echo -e "\033[41;37m ${APP_NAME} 已經(jīng)在運(yùn)行中. pid=${pid} .\033[0m" 
        
    else 
        cd $APP_HOME 
                nohup java -Xms2G -Xmx2G -Xss1M -XX:+UseParallelGC -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:gc.log -jar $APP_NAME  >> cat.out 2>&1 &
        
        echo -e "\033[32m ${APP_NAME} 正在啟動(dòng)法焰。秧荆。。\033[0m" 
        sleep 3
        is_exist
        if [ $? -eq "1" ]; then
            echo -e "\033[32m ${APP_NAME} 啟動(dòng)成功 .  pid=${pid} . \033[0m" 
        else
            echo -e "\033[41;37m ${APP_NAME} 啟動(dòng)失敗 .  \033[0m" 
        fi
                #exit 0
    fi
}
# 停止命令
stop(){ 
    is_exist
    if [ $? -eq "1" ]; then
        kill -9 ${pid}
        sleep 1
        is_exist
        if [ $? -eq "1" ]; then
            echo -e "\033[41;37m ${APP_NAME} 停止失敗 . pid=${pid} . \033[0m"  
            
        else
            echo -e "\033[32m ${APP_NAME} 停止成功 . \033[0m"  
        fi
         
    else 
        echo -e "\033[41;37m ${APP_NAME} 未啟動(dòng) .  \033[0m"   
    fi
}

# 狀態(tài)模塊
status() {

    is_exist
    if [ $? -eq "1" ]; then
        echo -e "\033[32m ${APP_NAME} 在運(yùn)行中. pid=${pid} . \033[0m"  
         
    else
        echo -e "\033[32m ${APP_NAME} 未啟動(dòng).  \033[0m"   
    fi
   
}
 
# 查詢備份列表
backlist(){
  cd $BACK_HOME
  ls -lrth $APP_NAME\_*
}
#部署
deploy(){

    #不存在目錄創(chuàng)建
    if [ ! -e $BACK_HOME ];then
        mkdir -p $BACK_HOME
    fi
    
    if [ -f $TARGET_HOME/$TARGET_NAME ]; then
        #備份
        if [ -f $APP_HOME/$APP_NAME ]; then
            rm $APP_HOME/$APP_NAME 
            echo -e "\033[32m 清理完成. $BACK_HOME/$APP_NAME\_$BACK_TIME \033[0m"   
        else
            echo -e "\033[41;37m APP目錄下不存在$APP_NAME 清理失敗. \033[0m"  
        fi
        
        #部署
        mv $TARGET_HOME/$TARGET_NAME $APP_HOME/$APP_NAME
        cp -R $APP_HOME/$APP_NAME $BACK_HOME/$APP_NAME\_$BACK_TIME
        echo -e "\033[32m 備份歸檔完成. $APP_HOME/$APP_NAME \033[0m"
        echo -e "\033[32m 部署完成. $APP_HOME/$APP_NAME \033[0m" 
        #重啟
        stop
        start
    else
        echo -e "\033[41;37m target目錄下不存在$APP_NAME . \033[0m"  
    fi
     
     
} 
# 回滾 
rollback() {

    if [ -z $INPUT2 ]; then
        echo -e "\033[41;37m 請(qǐng)輸入備份文件名 \033[0m" 
        exit 0
    fi

    if [ -f $BACK_HOME/$INPUT2 ]; then
        cp $BACK_HOME/$INPUT2 $APP_HOME/$APP_NAME
        stop
        start
    else
        echo -e "\033[41;37m 不存在備份文件:$BACK_HOME/$INPUT2 \033[0m" 
    fi
  
}

main() {
INPUT1=$1
INPUT2=$2
case $INPUT1 in
    rollback)
        rollback $INPUT2
        ;;
    list)
        backlist
        ;;
    deploy)
        deploy
        ;;
    restart)
        stop
        start
        ;;
    start)
        start
        ;;
    status)
        status
        ;;
    stop)
        stop
        ;;
    *)
        usage
        ;;
esac

exit 0
}
main $1 $2
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末埃仪,一起剝皮案震驚了整個(gè)濱河市乙濒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卵蛉,老刑警劉巖颁股,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異傻丝,居然都是意外死亡甘有,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門葡缰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亏掀,“玉大人,你說我怎么就攤上這事泛释÷算担” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵怜校,是天一觀的道長(zhǎng)间影。 經(jīng)常有香客問我,道長(zhǎng)茄茁,這世上最難降的妖魔是什么魂贬? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任巩割,我火速辦了婚禮,結(jié)果婚禮上付燥,老公的妹妹穿的比我還像新娘宣谈。我一直安慰自己,他們只是感情好机蔗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布蒲祈。 她就那樣靜靜地躺著,像睡著了一般萝嘁。 火紅的嫁衣襯著肌膚如雪梆掸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天牙言,我揣著相機(jī)與錄音酸钦,去河邊找鬼。 笑死咱枉,一個(gè)胖子當(dāng)著我的面吹牛卑硫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蚕断,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼欢伏,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了亿乳?” 一聲冷哼從身側(cè)響起硝拧,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎葛假,沒想到半個(gè)月后障陶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡聊训,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年抱究,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片带斑。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鼓寺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出勋磕,到底是詐尸還是另有隱情侄刽,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布朋凉,位于F島的核電站,受9級(jí)特大地震影響醋安,放射性物質(zhì)發(fā)生泄漏杂彭。R本人自食惡果不足惜墓毒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望亲怠。 院中可真熱鬧所计,春花似錦、人聲如沸团秽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽习勤。三九已至踪栋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間图毕,已是汗流浹背夷都。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留予颤,地道東北人囤官。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蛤虐,于是被迫代替她去往敵國和親党饮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

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