微服務下的持續(xù)集成-Jenkins自動化部署GitHub項目

@[TOC]

一幢妄、前言

只從公司用了Jenkins后就很想寫這個了包各,因為這個真真真的是太方便了曾雕,想起小農剛工作的時候,那個時候部署項目怎么部署呢钉嘹?首先需要將對應的class文件和xml一個一個導出來,放到對應的包文件里面鲸阻,有時候一不小心很有可能會導錯跋涣,這個時候又要去重新拉一下對應的class文件,然后對比看有沒有導入錯誤鸟悴,是不是class文件陈辱,先停止對應的tomcat服務,然后放到服務器上细诸,之后再啟動tomcat沛贪,這個過程簡直就是繁瑣重復而且沒有技術含量,為此公司還專門配置了一個做這個工作的運維人員震贵,完全沒有必要利赋,這點工資給我,我來做還做開發(fā)猩系,它不香嗎媚送?言歸正傳,自從用了Jenkins寇甸,才發(fā)現那是真的香塘偎,只需要提交到GIT上,然后在Jenkins上鼠標輕輕一點拿霉,等待發(fā)布吟秩,順便還可以喝杯咖啡,省時省力绽淘,今天這篇文章就將介紹涵防,如果搭建一個自動化部署的Jenkins。

附圖一張我們的Jenkins:


在這里插入圖片描述

二收恢、DevOps概念

在這里插入圖片描述

DevOps 一詞的來自于 Development 和 Operations 的組合武学,突出重視軟件開發(fā)人員和運維人員的溝通合作,通過自動化流程來使得軟件構建伦意、測試火窒、發(fā)布更加快捷、頻繁和可靠驮肉。DevOps 其實包含了三個部分:開發(fā)熏矿、測試和運維。換句話 DevOps 希望做到的是軟件產品交付過程中IT工具鏈的打通,使得各個團隊減少時間損耗票编,更加高效地協(xié)同工作褪储。

DevOps 強調的是高效組織團隊之間如何通過自動化的工具協(xié)作和溝通來完成軟件的生命周期管理,從而更快慧域、更頻繁地交付更穩(wěn)定的軟件

如果從字面上來理解鲤竹,DevOps 只是Dev(開發(fā)人員)+Ops(運維人員),實際上昔榴,它是一組過程辛藻、方法與系統(tǒng)的統(tǒng)稱,其概念從2009 年首次提出發(fā)展到現在互订,內容非常豐富吱肌,有理論也有實踐,包括組織文化仰禽、自動化氮墨、精益、反饋和分享等不同方面吐葵。

三规揪、為什么要做持續(xù)集成

  • 持續(xù)集成服務(Continuous Integration,簡稱 CI)
  • 它綁定 Github 上面的項目折联,只要有新的代碼粒褒,就會自動抓取。然后诚镰,提供一個運行環(huán)境奕坟,執(zhí)行測試,完成構建清笨,還能部署到服務器月杉。
  • 持續(xù)集成指的是只要代碼有變更,就自動運行構建和測試抠艾,反饋運行結果苛萎。確保符合預期以后,再將新代碼"集成"到主干检号。
  • 持續(xù)集成的好處在于腌歉,每次代碼的小幅變更,就能看到運行結果齐苛,從而不斷累積小的變更翘盖,而不是在開發(fā)周期結束時,一下子合并一大塊代碼凹蜂。

四馍驯、常見云服務

  1. travis-ci
    Travis CI 是在軟件開發(fā)領域中的一個在線的阁危,分布式的持續(xù)集成服務,用來構建及測試在GitHub托管的代碼汰瘫。與 Jenkis 不同狂打,Travis 不需要自己在服務器部署服務,并且是高度集成 GitHub 的混弥,所以對于開源項目還是非常友好的趴乡。
    適用于開源軟件
    官網:https://travis-ci.org/
  2. CircleCI
    CircleCI 和travis-ci類似也是一個持續(xù)集成/持續(xù)部署的服務,不需要自己搭建服務器剑逃。適用于開源軟件
  3. 阿里云
  4. 華為云
  5. IBM
  6. daocloud
  7. Jenkins

五浙宜、手動部署Jenkins

5.1 準備工作

1.JDK
下載地址:https://pan.baidu.com/s/1Q2CSqX5PE8PghFOgSGwOZQ
提取碼:l8uo

在這里插入圖片描述

2. Maven
鏈接:https://pan.baidu.com/s/101f74xd7ljtynklUo-KBdg
提取碼:nwgj
在這里插入圖片描述

3. Git
git安裝命令:yum install git
在這里插入圖片描述

4. 環(huán)境配置:
vi /etc/profile
在這里插入圖片描述

5.2 下載

Jenkins 項目產生兩個發(fā)行線, 長期支持版本 (LTS) 和每周更新版本
兩個版本都以 .war 文件, 原生包, 安裝程序, 和 Docker 容器的形式分發(fā)
最新下載地址:https://jenkins.io/zh/download/

要是下載不下來的小伙伴,也可以用過百度云下載: https://pan.baidu.com/s/1ZqX_3JUsQ88_hJuJZhkXrw
提取碼:w1vj

在這里插入圖片描述

5.3 啟動

下載好我們的 jenkins.war 后蛹磺,放到linux服務上,執(zhí)行java -jar Jenkins.war啟動服務同仆,啟動過程中我們會看到下面的日志信息:

在這里插入圖片描述

第一次加載的時候Jenkins會比較慢萤捆,它會把需要持久化的信息放到文件夾/root/.jenkins/,所以會比較慢俗批,我們需要耐心進行等待俗或,當出現下面日志的時候才說明我們啟動成功了,如圖:
[圖片上傳失敗...(image-26a92a-1606876652746)]
訪問地址:http://ip地址:8080/

注意:如果你的地址加端口不能訪問岁忘,首先確定你的Jenkins起來沒有辛慰,如果Jenkins啟動成功了,那么記得開放8080端口
firewall-cmd --permanent --zone=public --add-port=8080/tcp

在這里插入圖片描述

輸入我們在控制臺中看到的密鑰干像,如果找不到可以到/root/.jenkins/secrets/initialAdminPassword中查看密鑰

5.4 配置

1 選擇插件來安裝帅腌,不要選擇安裝推薦的插件,不然你可能會下載一天麻汰,會很慢


在這里插入圖片描述
  1. 這里選擇無速客,不安裝插件,點擊安裝,五鲫,插件我們后續(xù)只需安裝我們需要的即可


    在這里插入圖片描述

    3.輸入我們的用戶名和密碼之后溺职,點擊保存并完成


    在這里插入圖片描述

    4.實例配置,默認就行位喂,一般是和服務器地址匹配的
    在這里插入圖片描述

    5.開始使用


    在這里插入圖片描述

5.5 Jenkins 首頁

這里就是我們配置成功之后看到的Jenkins的首頁地址浪耘,但是里面什么插件都沒有,接下來就需要我們去配置對應的插件地址


在這里插入圖片描述

5.6 手動安裝插件

5.6.1. 中文漢化插件(Localization: Chinese (Simplified))

點擊 Manage Jenkins -> Manage Plugins

在這里插入圖片描述
5.6.2.安裝漢化插件

在搜索框中輸入:Chinese 點擊安裝

在這里插入圖片描述

在這里插入圖片描述

重啟之后Jenkins會自動刷新塑崖,到登錄頁面七冲,這個時候我們輸入我們剛開始配置的用戶名和密碼,就可以進行登錄了


在這里插入圖片描述

這里就是漢化之后的Jenkins
在這里插入圖片描述
5.6.3.安裝Git

選擇系統(tǒng)管理弃舒,點擊插件管理


在這里插入圖片描述

下載插件包
1 選擇可選插件
2 輸入Git
3 選擇Git
4 下載待重啟后安裝


在這里插入圖片描述

這個時候下載會比較慢癞埠,大家要耐心等待一會
在這里插入圖片描述
在這里插入圖片描述
5.6.4.Maven Integration

在插件管理中下載插件Maven Integration状原,然后在重復我們上面的操作

在這里插入圖片描述

開始下載,等下載后我們對Jenkins進行重啟
在這里插入圖片描述

到這里我們的Jenkins安裝和配置就已經安裝完成了C缱佟5咔!可以進入正式的項目新建項目了

六通铲、Jenkins + Maven +Git 自動化繼承/測試

6.1 Git拉取項目

生成公鑰私鑰對出來毕莱,命令:ssh-keygen

在這里插入圖片描述

進入密鑰目錄:cd .ssh/
在這里插入圖片描述

打開我們的git地址:https://github.com/
在這里插入圖片描述

新建一個SSH密鑰

在這里插入圖片描述

在下方輸入我們剛才生成的公鑰 vi id_rsa.pub

在這里插入圖片描述

這里我們用一個測試項目,項目代碼很簡單颅夺,就不做展示了朋截,有興趣的可以直接下載,項目地址:https://github.com/muxiaonong/ci-test.git

使用命令下載項目到我們的服務器上:git clone https://github.com/muxiaonong/ci-test.git

在這里插入圖片描述

如果下載成功了說明我們就配置好了

6.2 新建Jenkins項目

1 選擇新建任務
在這里插入圖片描述
2 輸入任務名稱吧黄,然后選擇Maven項目部服,點擊確定
在這里插入圖片描述
3 輸入描述,源碼管理選擇git

輸入我們剛才管理的Git地址 https://github.com/muxiaonong/ci-test.git

在這里插入圖片描述

4 點擊添加拗慨,選擇Jenkins配置
在這里插入圖片描述
4 配置憑據

類型選擇SSH
私鑰輸入我們剛才生成的廓八,在目錄 /root/.ssh,文件名為:id_rsa赵抢,將里面的私鑰復制進去

在這里插入圖片描述

添加好憑據后選擇root
在這里插入圖片描述

5 輪詢

填寫 * * * * *意思是每分鐘執(zhí)行

在這里插入圖片描述
6 環(huán)境變量

當我們第一次配置Jenkins 的時候剧蹂,由于我們沒有在Jenkins上配置環(huán)境變量,會提醒我們需要配置變量烦却,我們點擊下圖中的鏈接宠叼,進入配置頁面


在這里插入圖片描述
7 JDK配置

點擊新增JDK -》 自動安裝前面的勾選,去掉 -》 輸入別名和JAVA_HOME

注意:JAVA_HOME的輸入框下面其爵,不要有警告或者錯誤信息冒冬,否則就是路徑不正確。
使用 mvn -version命令時醋闭,就已經打印了Java home變量窄驹,注意:去除最后的jre

在這里插入圖片描述

8 Maven配置

點擊新增Maven -》 自動安裝前面的勾選,去掉 -》 輸入Name和MAVEN_HOME

注意:使用 mvn -version命令证逻,就可以看到Maven home變量
MAVEN_HOME 輸入框下面乐埠,不要有警告或者錯誤信息,否則就是路徑不正確囚企。

在這里插入圖片描述

##### 9 成功

如果Build還是報錯丈咐,我們先點擊保存,然后在進行配置


在這里插入圖片描述

這個時候我們什么都不需要進行操作龙宏,只需要點擊棵逊,應用保存即可


在這里插入圖片描述
10 大功告成

我們點擊立即構建,


在這里插入圖片描述

然后在執(zhí)行狀態(tài)就可以看到我們在執(zhí)行银酗,然后鼠標放到 #2上面辆影,會有一個小三角徒像,點擊控制臺輸出


在這里插入圖片描述
11 項目運行

當我們看到下面的一句話的時候,說明我們的項目已經成功 配置到Jenkins上蛙讥,并且成功運行了

在這里插入圖片描述

七锯蛀、總結

如果安裝Maven Integration失敗,需要手動下載javadoc.hpi文件次慢,具體下載路徑旁涤,報錯信息中會有提示的,使用迅雷下載即可迫像。
然后在jenkins插件管理中選擇高級模式劈愚,然后上傳安裝就可以解決!
https://plugins.jenkins.io/下載好hpi文件上傳安裝即可

Jenkins對于現在越來越火的微服務來說闻妓,簡直就是如魚得水菌羽,讓運維和開發(fā)都方便了很多,記得之前小農面試的時候由缆,面試官還問算凿,會Jenkins嗎,或者自己搭建嗎犁功,小農相信,當你看過這篇文章之后婚夫,如果恰好有面試官或者同事問你浸卦,你可以告訴他答案了,感興趣的小伙伴可以動手搭建起來了案糙,有不懂的可以在下面留言限嫌,小農看見了會第一時間回復大家,謝謝时捌,大家加油~

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末怒医,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子奢讨,更是在濱河造成了極大的恐慌稚叹,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拿诸,死亡現場離奇詭異扒袖,居然都是意外死亡,警方通過查閱死者的電腦和手機亩码,發(fā)現死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門季率,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人描沟,你說我怎么就攤上這事飒泻”薰猓” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵泞遗,是天一觀的道長惰许。 經常有香客問我,道長刹孔,這世上最難降的妖魔是什么啡省? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮髓霞,結果婚禮上卦睹,老公的妹妹穿的比我還像新娘。我一直安慰自己方库,他們只是感情好结序,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著纵潦,像睡著了一般徐鹤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上邀层,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天返敬,我揣著相機與錄音,去河邊找鬼寥院。 笑死劲赠,一個胖子當著我的面吹牛,可吹牛的內容都是我干的秸谢。 我是一名探鬼主播凛澎,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼估蹄!你這毒婦竟也來了塑煎?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤臭蚁,失蹤者是張志新(化名)和其女友劉穎最铁,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體刊棕,經...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡炭晒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了甥角。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片网严。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖嗤无,靈堂內的尸體忽然破棺而出震束,到底是詐尸還是另有隱情怜庸,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布垢村,位于F島的核電站割疾,受9級特大地震影響,放射性物質發(fā)生泄漏嘉栓。R本人自食惡果不足惜宏榕,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望侵佃。 院中可真熱鬧麻昼,春花似錦、人聲如沸馋辈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迈螟。三九已至叉抡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間答毫,已是汗流浹背褥民。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留洗搂,地道東北人轴捎。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像蚕脏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子侦锯,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內容