Jenkins和gitlab(webhooks)的CI/CD前置工作

1 用戶故事

作為一個程序員运准,我想為項目做一套自動化測試和發(fā)布服務(wù),以便我不用每次都手動測試和發(fā)布碰凶。

2 概述

2.1 環(huán)境簡述
  • 服務(wù)器:centos7.*

  • gitlab: Community Edition 10.2.1

  • Jenkins: 2.6 +

2.2 前期準(zhǔn)備
  • gitlab中需要devops的項目的master權(quán)限(用于設(shè)置webhooks和git公鑰)暮芭。

  • Jenkins服務(wù)器中的公鑰。

  • Jenkins需要安裝“GitLab Plugin”插件欲低。

2.3 整體流程

在gitlab中配置webhooks和Jenkins服務(wù)器的公鑰辕宏,在Jenkins中創(chuàng)建一個新任務(wù)并配置好CI/CD的工作流和git認(rèn)證相關(guān)配置。

當(dāng)git的工程push的時候砾莱,就會發(fā)一個post到Jenkins服務(wù)瑞筐,Jenkins就會執(zhí)行相應(yīng)task。

3 步驟

3.1 在gitlab中設(shè)置Jenkins服務(wù)器的公鑰
  • 在Jenkins服務(wù)器上獲取公鑰腊瑟。進(jìn)入目錄cd ~/.ssh/聚假,查看目錄下是否存在 id_rsa.pubid_rsa 文件块蚌。如果不存在,使用命令:ssh-keygen -t rsa -C "youremail@example.com"膘格,生成這2個文件(之后步驟中私鑰內(nèi)容放入Jenkins中峭范,公鑰添加到GitLab中)。

  • 進(jìn)入gitlab的工程首頁瘪贱,setting → Repository → Deploy Keys 纱控,然后將 id_rsa.pub 的公鑰復(fù)制到 key中且保存。

==注:如果提示錯誤"Fingerprint has already been taken"菜秦,有兩種情況:1甜害、復(fù)制的密鑰中有換行符。 2球昨、之前已存在的密鑰可能無效尔店,需重新生成。==

3.2 在Jenkins中配置任務(wù)
  • 進(jìn)入Jenkins首頁主慰, 新建 → 選擇”構(gòu)建一個自由風(fēng)格的軟件項目“并輸入任務(wù)名(此testProject)嚣州。

  • 配置源碼管理:選擇git,在Repository URL中輸入項目的http鏈接河哑。Credentials 點擊add(Jenkins),在彈出頁中進(jìn)行相關(guān)設(shè)置(設(shè)置如下圖)龟虎。

jenkins.png
  • 配置構(gòu)建觸發(fā)器:勾選 ”Build when a change is pushed to GitHub“ 和 ”Build when a change is pushed to GitLab. GitLab CI Service URL: http://host:port/project/testProject” , 復(fù)制此處的Service URL璃谨,為之后配置webhooks使用。

  • 配置構(gòu)建:略鲤妥,這里只介紹CI/CD的前置工作佳吞。

  • 配置完成點擊保存。

3.3 在gitlab中配置webhooks
  • 進(jìn)入gitlab工程首頁棉安,setting → Integrations 底扳,在url 中輸入剛才在Jenkins配置過程中復(fù)制的Service URL ,url的格式為http://Jenkins用戶ID:Jenkins用戶的apitoken值@host:port/project/testProject 贡耽,其中Jenkins用戶的apitoken在當(dāng)前用戶配置中去找衷模。然后點擊“add webhook”,設(shè)置完成蒲赂。

  • Secret Token可設(shè)置阱冶,也可不設(shè)置。如需設(shè)置滥嘴,應(yīng)在 3.2中的配置構(gòu)建觸發(fā)器步驟中木蹬,在勾選后,選擇高級若皱,即可生成Secret Token镊叁。


以上為基本前置工作尘颓,只是在gitlab和Jenkins部署之后的一些簡單的連通配置。git的認(rèn)證方式有多種晦譬,這里選擇使用公私鑰認(rèn)證(個人感覺相對穩(wěn)定)疤苹。

create at 2017/12/16 11:50:27

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蛔添,隨后出現(xiàn)的幾起案子痰催,更是在濱河造成了極大的恐慌,老刑警劉巖迎瞧,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夸溶,死亡現(xiàn)場離奇詭異,居然都是意外死亡凶硅,警方通過查閱死者的電腦和手機(jī)缝裁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來足绅,“玉大人捷绑,你說我怎么就攤上這事∏饴瑁” “怎么了粹污?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長首量。 經(jīng)常有香客問我壮吩,道長,這世上最難降的妖魔是什么加缘? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任鸭叙,我火速辦了婚禮,結(jié)果婚禮上拣宏,老公的妹妹穿的比我還像新娘沈贝。我一直安慰自己,他們只是感情好勋乾,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布宋下。 她就那樣靜靜地躺著,像睡著了一般辑莫。 火紅的嫁衣襯著肌膚如雪杨凑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天摆昧,我揣著相機(jī)與錄音撩满,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛伺帘,可吹牛的內(nèi)容都是我干的昭躺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼伪嫁,長吁一口氣:“原來是場噩夢啊……” “哼领炫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起张咳,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤帝洪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后脚猾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體葱峡,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年龙助,在試婚紗的時候發(fā)現(xiàn)自己被綠了砰奕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡提鸟,死狀恐怖军援,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情称勋,我是刑警寧澤胸哥,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站赡鲜,受9級特大地震影響空厌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蝗蛙,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一蝇庭、第九天 我趴在偏房一處隱蔽的房頂上張望醉鳖。 院中可真熱鬧捡硅,春花似錦、人聲如沸盗棵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纹因。三九已至喷屋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瞭恰,已是汗流浹背屯曹。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人恶耽。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓密任,卻偏偏與公主長得像,于是被迫代替她去往敵國和親偷俭。 傳聞我的和親對象是個殘疾皇子浪讳,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

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