(CI & CD)Jenkins+GitHub+Vue

本篇主要介紹如何實(shí)現(xiàn)上傳代碼到github之后当叭,自動(dòng)編譯部署代碼的效果芽丹,采用的工具為jenkins(持續(xù)集成&持續(xù)部署工具)+github(代碼托管平臺(tái))+vue(測試項(xiàng)目)

jenkins

1. 什么是jenkins

jenkins是當(dāng)前比較流行的一款持續(xù)集成&持續(xù)部署(CI & CD)的工具笋庄,可以實(shí)現(xiàn)代碼上傳倉庫(代碼更新)后自動(dòng)部署到需要部署的位置(服務(wù)器等)另凌。

2.為什么本次使用rpm方式安裝jenkins康吵?

jenkins大致有三種安裝方式:

  1. 使用war包進(jìn)行安裝
  2. linux使用rpm方式安裝
  3. docker方式安裝jenkins

使用rpm安裝的原因有二:1.當(dāng)前使用的正是linux系統(tǒng) 2.使用docker安裝后实夹,在容器內(nèi)訪問宿主機(jī)的docker命令太困難橄浓。

3. 安裝java環(huán)境

    1. 首先執(zhí)行以下命令查看可安裝的jdk版本:yum -y list java*
    1. 選擇一個(gè)版本安裝 yum install -y java-1.8.0-openjdk-devel.x86_64
    1. 檢查是否安裝成功java -version 查看是否輸出對(duì)應(yīng)的版本號(hào)

4. 開始安裝jenkins(經(jīng)測試比較,該方法最快)

    1. 首先需要jenkins的rpm安裝包
      可以去官網(wǎng)下載(非常慢)亮航,也可以使用下面的github倉庫荸实,我上傳了一個(gè)2020年2月28日的修改版,應(yīng)該是比較新的了缴淋,地址在這里准给。
      image.png
    1. 上傳該rpm包到服務(wù)器,這里以本機(jī)是mac系統(tǒng)電腦宴猾,服務(wù)器是linux為例:
scp 本地目錄  遠(yuǎn)程登錄服務(wù)器用戶名@遠(yuǎn)程服務(wù)器ip地址:/下載文件的目錄
    1. 上傳成功后,進(jìn)入該上傳目標(biāo)文件夾叼旋,執(zhí)行以下命令:
$ rpm -ivh jenkins-XXXXX.noarch.rpm
    1. 按實(shí)際情況仇哆,判斷是否需要jenkins的默認(rèn)使用端口(8080),如果需要請(qǐng)執(zhí)行(我改成了8888):
$ vi /etc/sysconfig/jenkins

找到JENKINS_PORT鍵夫植,修改對(duì)應(yīng)的值即可讹剔。

    1. 啟動(dòng)/關(guān)閉/重啟jenkins(這是三種命令的合在一起寫的,執(zhí)行的時(shí)候判斷需要哪個(gè)详民,就執(zhí)行哪個(gè))
$ service jenkins start/stop/restart

5.訪問jenkins瀏覽器頁面 http://118.25.194.49:8888

    1. 就會(huì)出現(xiàn)jenkins的正在裝載頁面


      image.png
    1. 輸入解鎖jenkins的密碼延欠,密碼存放在頁面的紅色區(qū)域,在服務(wù)器直接cat 紅色區(qū)域路徑就能得到密碼沈跨,復(fù)制進(jìn)來由捎,下一步即可。
      image.png
    1. 安裝插件(可以選擇第一個(gè)默認(rèn)安裝)


      image.png
    1. 配置用戶名密碼等相關(guān)參數(shù)頁面饿凛,配置好就下一步狞玛。
    1. 進(jìn)入首頁


      image.png
    1. 新建任務(wù)


      image.png
  • 配置上該項(xiàng)目的github的https的git地址


    image.png
  • 配置‘源碼管理’


    image.png

    點(diǎn)擊‘添加-jenkins’


    image.png

    選擇剛才生成的
    image.png
  • 配置觸發(fā)器


    image.png

    勾選上H沓邸!心肪!

  • !!!!!視頻中忘了說的 - 這步不能忘锭亏,否則提交代碼無法觸發(fā)自動(dòng)構(gòu)建

此時(shí),在jenkins中我們開啟了github trigger硬鞍,但是呢慧瘤,github方還不知道在我們push完代碼之后應(yīng)該通知jenkins,以及通知哪個(gè)jenkins固该,接下來我們?nèi)ithub中锅减,找到當(dāng)前項(xiàng)目,點(diǎn)擊setting蹬音,找到webhook選項(xiàng)上煤,添加上http://your 地址/github-webhook/,例如http://118.25.200.49:8888/github-webhook/,保存即可著淆。

  • 構(gòu)建


    image.png

    image.png
  • 先‘應(yīng)用’劫狠,再‘保存’
    1. 點(diǎn)擊‘立即構(gòu)建’


      image.png

      稍等這里會(huì)出來一個(gè)序號(hào)加小球,點(diǎn)擊最新的小球進(jìn)去


      image.png

      選擇‘控制臺(tái)輸出’
      image.png

      可以看到輸出信息


      image.png
    1. 停止原來運(yùn)行的demo1的docker的nginx容器


      image.png
    1. 追加腳本永部,'應(yīng)用'+‘保存’


      image.png
  • 注意6琅ⅰ!苔埋! 這里視頻上也漏了一步懦砂,就是start.sh中有啟動(dòng)docker的命令,但是用jenkins去執(zhí)行的話组橄,由于jenkins不在docker的組內(nèi)荞膘,所以執(zhí)行一些命令的時(shí)候沒有權(quán)限,解決方案如下:

1. 將jenkins加入docker組
$ sudo gpasswd -a jenkins docker
2. 重啟jenkins服務(wù)
$ sudo service jenkins restart
    1. 點(diǎn)擊立即構(gòu)建玉工,進(jìn)入最新出來的小球中羽资,查看日志


      image.png

      成功編譯文件,并生成docker容器遵班,接下來驗(yàn)證一下


      image.png

      驗(yàn)證通過
  • 10.實(shí)驗(yàn)提交代碼觸發(fā)jenkins自動(dòng)集成+自動(dòng)部署
    用本地編譯器重新提交一版修改過的代碼屠升,僅僅push到github上,此時(shí)查看


    image.png

    這個(gè)就是剛剛push到遠(yuǎn)程的一次commit狭郑,通過hook通知了jenkins腹暖,jenkins拉取了最新的代碼,并執(zhí)行了start.sh翰萨,此時(shí)脏答,只要去看一下頁面,如果是我們剛改的,一切就很完美了以蕴。


    image.png

    完美糙麦!

完美其實(shí)并不完美,由于粗心丛肮,漏掉了上面補(bǔ)充的兩點(diǎn)赡磅,給別人帶來了困擾,以后宝与,以后每發(fā)布的文章我一定認(rèn)真檢查焚廊,不會(huì)再出現(xiàn)以上的問題,立帖為證习劫!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末咆瘟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子诽里,更是在濱河造成了極大的恐慌袒餐,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谤狡,死亡現(xiàn)場離奇詭異灸眼,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)墓懂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門焰宣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人捕仔,你說我怎么就攤上這事匕积。” “怎么了榜跌?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵闪唆,是天一觀的道長。 經(jīng)常有香客問我钓葫,道長悄蕾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任瓤逼,我火速辦了婚禮笼吟,結(jié)果婚禮上库物,老公的妹妹穿的比我還像新娘霸旗。我一直安慰自己,他們只是感情好戚揭,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布诱告。 她就那樣靜靜地躺著,像睡著了一般民晒。 火紅的嫁衣襯著肌膚如雪精居。 梳的紋絲不亂的頭發(fā)上锄禽,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音靴姿,去河邊找鬼沃但。 笑死,一個(gè)胖子當(dāng)著我的面吹牛佛吓,可吹牛的內(nèi)容都是我干的宵晚。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼维雇,長吁一口氣:“原來是場噩夢啊……” “哼淤刃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起吱型,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤逸贾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后津滞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铝侵,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年据沈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哟沫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锌介,死狀恐怖嗜诀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情孔祸,我是刑警寧澤隆敢,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站崔慧,受9級(jí)特大地震影響拂蝎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜惶室,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一温自、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧皇钞,春花似錦悼泌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春鸠踪,著一層夾襖步出監(jiān)牢的瞬間丙者,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工营密, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留械媒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓评汰,卻偏偏與公主長得像滥沫,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子键俱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348