Jenkins自動(dòng)化部署項(xiàng)目(gitlab,maven,docker)

自動(dòng)化部署流程

1 開發(fā)同事在gitlab上打了一個(gè)tag
2 gitlab把tag事件推送到Jenkins
3 Jenkins獲取tag源碼撒穷,編譯蓝纲,打包讶坯,構(gòu)建鏡像
4 通知測(cè)試同事進(jìn)行測(cè)試
5 Jenkins push鏡像到鏡像倉(cāng)庫(kù)
6 Jenkins執(zhí)行遠(yuǎn)程腳本
? ?6.1 遠(yuǎn)程服務(wù)器pull指定鏡像
? ?6.2 停止老版本容器丰辣,啟動(dòng)新版本容器
7 通知部署結(jié)果

準(zhǔn)備工作-新建gitlab項(xiàng)目

在gitlab建立新項(xiàng)目盛杰,idea新建項(xiàng)目焰扳,創(chuàng)建git倉(cāng)庫(kù)倦零,綁定gitlab項(xiàng)目并上傳

1 于gitlab頁(yè)面new project
輸入project name
選擇group

2 idea 新建hello項(xiàng)目

3 idea 為hello項(xiàng)目創(chuàng)建git倉(cāng)庫(kù)
idea -> VCS -> Import into Version Controller -> Create Git Repository

4 上傳至gitlab
add
commit + 綁定gitlab項(xiàng)目
push

主要步驟

主要完成下面三件事情
1 jenkins和gitlab配置事件推送
2 jenkins從gitlab拉取項(xiàng)目至服務(wù)器
3 jenkins執(zhí)行shell部署項(xiàng)目(mavan build & docker)

jenkins從gitlab拉取項(xiàng)目至服務(wù)器

1 jenkins新建項(xiàng)目

2 于項(xiàng)目的confiure -> Source Code Management 配置repositories
gitlab url 和 gitlab憑證()

3 build這里先隨便寫寫,后續(xù)再處理

4 進(jìn)入項(xiàng)目吨悍,點(diǎn)擊Build with Parameters,build
? ?點(diǎn)擊項(xiàng)目下方Build #1? ?(1為順序號(hào)扫茅,后續(xù)會(huì)自動(dòng)增加)
? ?可以在Console Output見到拉去和構(gòu)建過(guò)程
? ?注意,需要于linux 服務(wù)器設(shè)置linux id jenkins 獲得/var/lib/jenkins/workspace的修改權(quán)限

jenkins執(zhí)行shell部署項(xiàng)目(mavan build & docker)

1 因?yàn)橐獔?zhí)行maven命令育瓜,所以要在jenkins配置maven的全局變量
2 因?yàn)橐獔?zhí)行docker命令葫隙,所以將jenkins用戶添加到docker組。注意爆雹,添加后需要重啟jenkins才能生效
3 project configure build寫入對(duì)應(yīng)的shell

echo 開始構(gòu)建
pwd
echo 'mvn clean install'
mvn clean install
echo 'docker build'? ?
docker stop hello||true
docker rm hello||true
docker rmi hello||true
docker build -t hello:0.0.1 .
docker run -it -d -e TZ="Asia/Shanghai" --name hello -p 9998:9998 hello:0.0.1
echo 構(gòu)建完成

4?進(jìn)入項(xiàng)目停蕉,點(diǎn)擊Build with Parameters,build
項(xiàng)目構(gòu)建成功愕鼓,點(diǎn)擊項(xiàng)目連接可以正常訪問(wèn)(http://192.168.1.117:9998/hello)

jenkins和gitlab配置事件推送

發(fā)布一個(gè)版本時(shí),我們通常先在版本庫(kù)中打一個(gè)標(biāo)簽(tag)慧起,這里我們?cè)O(shè)置在打tag的時(shí)候會(huì)自動(dòng)進(jìn)行構(gòu)建菇晃。

1 用戶setting 產(chǎn)生api token,該token使用在gitlab 推送url中用戶登錄

2 project configure Build Triggers選擇Generic Webhook Trigger
Post content parameters增加參數(shù)ref,用作檢驗(yàn)
Token 輸入testwebhooktoken用作后面標(biāo)志項(xiàng)目
Optional filter 中設(shè)置當(dāng)參數(shù)ref 存在dev字符串時(shí)候才執(zhí)行

3 gitlab選擇項(xiàng)目,在項(xiàng)目setting -> Integrations中增加規(guī)則
選擇Tag push events 即添加tag時(shí)候發(fā)動(dòng)
url如下
http://admin:1199955825a908aba7a0eb9c217145dfeb@192.168.1.117:8080/generic-webhook-trigger/invoke?token=testwebhooktoken
1199955825a908aba7a0eb9c217145dfeb 為用戶api token,用作登錄
token=testwebhooktoken 為項(xiàng)目標(biāo)識(shí)

4 現(xiàn)在于gitlab(或idea增加tag后push,記得要勾選push tag)蚓挤,都可以觸發(fā)項(xiàng)目構(gòu)建

完整地進(jìn)行一次測(cè)試

1 idea clone項(xiàng)目
2 idea 修改HelloController 返回的message磺送,并commit
3 idea 新增tag,必須包括dev
4 idea push(勾選pusj tag)
5 gitlab看到tag已經(jīng)新增
6 gitlab 于項(xiàng)目setting -> Integrations,edit規(guī)則灿意,可以看到最新發(fā)送情況估灿,view details可以看到送了什么參數(shù),這里可以看到ref里面有上面新增的tag id
7 jenkins 點(diǎn)擊項(xiàng)目可以見到最新的build history,點(diǎn)擊進(jìn)去可以看到構(gòu)建情況缤剧,Console Output可以看到執(zhí)行時(shí)候的控制臺(tái)信息
8 項(xiàng)目構(gòu)建需要一定時(shí)間馅袁,在jenkins看到構(gòu)建完成后,于http://192.168.1.117:9998/hello可以看到最新的message

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末荒辕,一起剝皮案震驚了整個(gè)濱河市汗销,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌抵窒,老刑警劉巖弛针,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異李皇,居然都是意外死亡削茁,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門掉房,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)茧跋,“玉大人,你說(shuō)我怎么就攤上這事卓囚⊙嵯危” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵捍岳,是天一觀的道長(zhǎng)富寿。 經(jīng)常有香客問(wèn)我,道長(zhǎng)锣夹,這世上最難降的妖魔是什么页徐? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮银萍,結(jié)果婚禮上变勇,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好搀绣,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布飞袋。 她就那樣靜靜地躺著,像睡著了一般链患。 火紅的嫁衣襯著肌膚如雪巧鸭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天麻捻,我揣著相機(jī)與錄音纲仍,去河邊找鬼。 笑死贸毕,一個(gè)胖子當(dāng)著我的面吹牛郑叠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播明棍,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼乡革,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了摊腋?” 一聲冷哼從身側(cè)響起署拟,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎歌豺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體心包,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡类咧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蟹腾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痕惋。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖娃殖,靈堂內(nèi)的尸體忽然破棺而出值戳,到底是詐尸還是另有隱情,我是刑警寧澤炉爆,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布堕虹,位于F島的核電站,受9級(jí)特大地震影響芬首,放射性物質(zhì)發(fā)生泄漏赴捞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一郁稍、第九天 我趴在偏房一處隱蔽的房頂上張望赦政。 院中可真熱鬧,春花似錦耀怜、人聲如沸恢着。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掰派。三九已至从诲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碗淌,已是汗流浹背盏求。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亿眠,地道東北人碎罚。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像纳像,于是被迫代替她去往敵國(guó)和親荆烈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348