Jenkins安裝及使用

Jenkins芝加,原名 Hudson耍攘,2011 年改為現在的名字武通。它是一個開源的實現持續(xù)集成的軟件工具奉呛。

一计螺、Jenkins安裝

1.1 Linux下安裝Jenkins

  1. 安裝java運行環(huán)境
yum search java|grep jdk
yum install java-1.8.0-openjdk
  1. 安裝git
yum -y install git
  1. 運行jenkins.war
nohup java -jar jenkins.war &

1.2 Docker安裝Jenkins

  1. 拉取jenkins鏡像
    目前jenkins鏡像不用了,要用jenkins/jenkins鏡像
docker pull jenkins/jenkins
  1. 創(chuàng)建jenkins工作目錄
mkdir /home/jenkins/jenkins_home
  1. 啟動
docker run -u root  -d -p 8080:8080 -p 50000:50000 --name jenkins --restart always -v /home/jenkins/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime jenkins/jenkins

二瞧壮、配置全局參數

  1. jdk安裝


    image.png
  2. 配置maven環(huán)境


    image.png
  3. Publish Over SSH 配置
    3.1 安裝 Publish Over SSH 插件


    image.png

    3.2 配置 Publish Over SSH
    在Configure System菜單里 往下拉


    image.png

    image.png

    3.3 配置 Build Authorization Token Root
    image.png
  4. 配置 NodeJS
    4.1 通過jenkins自動安裝


    image.png

    image.png

    4.2 通過官網下載安裝包

三登馒、構建后端自動打包部署項目

  1. 創(chuàng)建maven構建項目


    image.png
  2. 配置當前項目參數
    2.1 配置git倉庫地址
    image.png

    2.2 配置目標服務器,通過 Publish Over SSH 將jar包發(fā)送到目標服務器
    image.png

    image.png

    nohup啟動后 bash會進行阻塞卡住咆槽,jenkins認為認為一直沒完成
    shell的日志輸出
nohup java -jar /home/test/test-0.0.1-SNAPSHOT.jar >/home/test/nohup.log 2>&1 &

數據流重定向
數據流重定向就是將某個命令執(zhí)行后應該要出現在屏幕上的數據傳輸到其他地方
標準輸入(stdin):代碼為0陈轿,使用<或<<;
標準輸出(stdout):代碼為1,使用>或>>;
標準錯誤輸出(stderr):代碼為2秦忿,使用2>或2>>
> 覆蓋寫
>> 追加寫

2.3 配置jar啟動前麦射,清理目標服務器占用端口及歷史jar包文件

image.png

注意:需要在目標服務器上編寫清理腳本

#!/bin/bash

# 判斷如果沒有傳遞參數   則不再往下執(zhí)行

# 將要操作的jar包  通過命令行傳遞進來
appWorkSpace=$1
#獲取傳入的參數
if [ -z $appWorkSpace ];
    then
        echo "當前傳遞參數【appWorkSapce:$appWorkSpace】為空"
        exit 1
fi
# 獲取當前jar包執(zhí)行所占用的端口號
appPort=$2
if [ -z $appPort ];
    then 
        echo "當前傳遞參數【appPort:$appPort】 為空"
        exit 1
fi


# 刪除原始文件
# rm -rf /home/test/test-0.0.1-SNAPSHOT.jar

# 刪除歷史文件
# rm -rf /home/test/test-0.0.1-SNAPSHOT.jar-*

# 將原始文件進行備份刪除
# 獲取當前時間戳
time=$(date "+%Y%m%d%H%M%S")
echo $time

# 備份歷史文件
mv $appWorkSpace $appWorkSpace'-'${time}

# 獲取當前正在運行的端口服務
pid=`netstat -tunpl | grep $appPort | awk '{printf $7}' | awk '{split($1, arr, "/"); print arr[1]}'`
echo "pid:$pid"
#如果pid為空,提示一下灯谣,否則潜秋,執(zhí)行kill命令
if [ -z $pid ];
#使用-z 做空值判斷
    then
        echo "當前pid為空"
        echo "$appWorkSpace not started"
    else
        kill -9 $pid
        echo "當前不為空"
        echo "$appWorkSpace stoping...."
                  
fi
echo "12312312312312"
# 再次判斷一下當前的pid是否還存在
oldPid=`netstat -tunpl | grep $appPort | grep $pid | grep java`
echo "oldPid:$oldPid"
if [ -z $oldPid ];
    then
        echo "$appWorkSapce pid:$pid is stop..................";
    else
        echo "$appWorkSapce stop failed"
fi

echo $pid

2.4 配置jenkins觸發(fā)器,通過gitlab調用jenkins構建項目胎许,使用Build Authorization Token Root插件進行調用(去掉不同瀏覽器需要登錄驗證)


image.png

image.png
http://${IP}:${PORT}/buildByToken/build?job=${NAME}&token=${SECRET}

2.5 配置gitlab 項目中 webhooks調用鉤子調用jenkins觸發(fā)項目構建


image.png

四峻呛、構建vue項目自動打包部署

  1. 創(chuàng)建構建項目


    image.png
  2. 全局配置node環(huán)境


    image.png
  3. 配置git倉庫地址


    image.png
  4. 配置構建環(huán)境


    image.png
  5. 通過命令引入依賴并打包,并打成壓縮包


    image.png
  6. 通過命令發(fā)送到目標服務器辜窑,并執(zhí)行腳本解壓部署到指定文件夾中


    image.png
  7. 編寫腳本钩述,自動清理目標服務器文件


    image.png
#!/bin/bash


# 獲取傳入的參數  指定文件夾名
appWorkSpace=$1
if [ -z $appWorkSpace ];
    then
        echo "當前傳遞參數【appWorkSpace:$appWorkSpace 】為空"
        exit 1
fi
# 刪除/備份歷史前端打包文件
# 刪除
# rm -rf $appWorkSpace'/html/dist'
# 備份
time=$(date "+%Y%m%d%H%M%S")
echo $time
mv $appWorkSpace'/html/dist' $appWorkSpace'/html/dist-'$time

# 將當前文件拷貝到指定容器文件夾中
cp -r  $appWorkSpace'/dist'  $appWorkSpace'/html'

# 刪除當前壓縮文件及文件夾
rm -rf $appWorkSpace'/dist'
rm -rf $appWorkSpace'/dist.tar.gz'
  1. 執(zhí)行清理當前jenkins工作空間腳本,清除dist和dist.tar.gz壓縮包


    image.png
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末穆碎,一起剝皮案震驚了整個濱河市牙勘,隨后出現的幾起案子,更是在濱河造成了極大的恐慌惨远,老刑警劉巖谜悟,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件话肖,死亡現場離奇詭異,居然都是意外死亡葡幸,警方通過查閱死者的電腦和手機最筒,發(fā)現死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔚叨,“玉大人床蜘,你說我怎么就攤上這事∶锼” “怎么了邢锯?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長搀别。 經常有香客問我丹擎,道長,這世上最難降的妖魔是什么歇父? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任蒂培,我火速辦了婚禮,結果婚禮上榜苫,老公的妹妹穿的比我還像新娘护戳。我一直安慰自己,他們只是感情好垂睬,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布媳荒。 她就那樣靜靜地躺著,像睡著了一般驹饺。 火紅的嫁衣襯著肌膚如雪钳枕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天逻淌,我揣著相機與錄音么伯,去河邊找鬼。 笑死卡儒,一個胖子當著我的面吹牛田柔,可吹牛的內容都是我干的。 我是一名探鬼主播骨望,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼硬爆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了擎鸠?” 一聲冷哼從身側響起缀磕,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后袜蚕,有當地人在樹林里發(fā)現了一具尸體糟把,經...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年牲剃,在試婚紗的時候發(fā)現自己被綠了遣疯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡凿傅,死狀恐怖缠犀,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情聪舒,我是刑警寧澤辨液,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站箱残,受9級特大地震影響滔迈,放射性物質發(fā)生泄漏。R本人自食惡果不足惜疚宇,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一亡鼠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧敷待,春花似錦、人聲如沸仁热。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抗蠢。三九已至举哟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間迅矛,已是汗流浹背妨猩。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留秽褒,地道東北人壶硅。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像销斟,于是被迫代替她去往敵國和親庐椒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內容