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

@

一、前言

只從公司用了Jenkins後就很想寫這個了,因為這個真真真的是太方便了,想起小農剛工作的時候,那個時候部署項目怎麼部署呢?首先需要將對應的class文件和xml一個一個導出來,放到對應的包文件裏面,有時候一不小心很有可能會導錯,這個時候又要去重新拉一下對應的class文件,然後對比看有沒有導入錯誤,是不是class文件,先停止對應的tomcat服務,然後放到服務器上,之後再啟動tomcat,這個過程簡直就是繁瑣重複而且沒有技術含量,為此公司還專門配置了一個做這個工作的運維人員,完全沒有必要,這點工資給我,我來做還做開發,它不香嗎?言歸正傳,自從用了Jenkins,才發現那是真的香,只需要提交到GIT上,然後在Jenkins上鼠標輕輕一點,等待發佈,順便還可以喝杯咖啡,省時省力,今天這篇文章就將介紹,如果搭建一個自動化部署的Jenkins。

附圖一張我們的Jenkins:
在這裡插入圖片描述

二、DevOps概念

在這裡插入圖片描述
DevOps 一詞的來自於 Development 和 Operations 的組合,突出重視軟件開發人員和運維人員的溝通合作,通過自動化流程來使得軟件構建、測試、發佈更加快捷、頻繁和可靠。DevOps 其實包含了三個部分:開發、測試和運維。換句話 DevOps 希望做到的是軟件產品交付過程中IT工具鏈的打通,使得各個團隊減少時間損耗,更加高效地協同工作。

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

如果從字面上來理解,DevOps 只是Dev(開發人員)+Ops(運維人員),實際上,它是一組過程、方法與系統的統稱,其概念從2009 年首次提出發展到現在,內容非常豐富,有理論也有實踐,包括組織文化、自動化、精益、反饋和分享等不同方面。

三、為什麼要做持續集成

  • 持續集成服務(Continuous Integration,簡稱 CI)
  • 它綁定 Github 上面的項目,只要有新的代碼,就會自動抓取。然後,提供一個運行環境,執行測試,完成構建,還能部署到服務器。
  • 持續集成指的是只要代碼有變更,就自動運行構建和測試,反饋運行結果。確保符合預期以後,再將新代碼”集成”到主幹。
  • 持續集成的好處在於,每次代碼的小幅變更,就能看到運行結果,從而不斷累積小的變更,而不是在開發周期結束時,一下子合併一大塊代碼。

四、常見雲服務

  1. travis-ci
    Travis CI 是在軟件開發領域中的一個在線的,分佈式的持續集成服務,用來構建及測試在GitHub託管的代碼。與 Jenkis 不同,Travis 不需要自己在服務器部署服務,並且是高度集成 GitHub 的,所以對於開源項目還是非常友好的。
    適用於開源軟件
    官網://travis-ci.org/
  2. CircleCI
    CircleCI 和travis-ci類似也是一個持續集成/持續部署的服務,不需要自己搭建服務器。適用於開源軟件
  3. 阿里雲
  4. 華為雲
  5. IBM
  6. daocloud
  7. Jenkins

五、手動部署Jenkins

5.1 準備工作

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

在這裡插入圖片描述
2. Maven
鏈接://pan.baidu.com/s/101f74xd7ljtynklUo-KBdg
提取碼:nwgj
在這裡插入圖片描述
3. Git
git安裝命令:yum install git
在這裡插入圖片描述
4. 環境配置:
vi /etc/profile
在這裡插入圖片描述

5.2 下載

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

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

在這裡插入圖片描述

5.3 啟動

下載好我們的 jenkins.war 後,放到linux服務上,執行java -jar Jenkins.war啟動服務,啟動過程中我們會看到下面的日誌信息:
在這裡插入圖片描述
第一次加載的時候Jenkins會比較慢,它會把需要持久化的信息放到文件夾/root/.jenkins/,所以會比較慢,我們需要耐心進行等待,當出現下面日誌的時候才說明我們啟動成功了,如圖:
在這裡插入圖片描述
訪問地址://ip地址:8080/

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

在這裡插入圖片描述
輸入我們在控制台中看到的密鑰,如果找不到可以到/root/.jenkins/secrets/initialAdminPassword中查看密鑰

5.4 配置

1 選擇插件來安裝,不要選擇安裝推薦的插件,不然你可能會下載一天,會很慢
在這裡插入圖片描述

  1. 這裡選擇無,不安裝插件,點擊安裝,,插件我們後續只需安裝我們需要的即可
    在這裡插入圖片描述
    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

選擇系統管理,點擊插件管理
在這裡插入圖片描述
下載插件包
1 選擇可選插件
2 輸入Git
3 選擇Git
4 下載待重啟後安裝
在這裡插入圖片描述
這個時候下載會比較慢,大家要耐心等待一會
在這裡插入圖片描述

在這裡插入圖片描述

5.6.4.Maven Integration

在插件管理中下載插件Maven Integration,然後在重複我們上面的操作
在這裡插入圖片描述
開始下載,等下載後我們對Jenkins進行重啟
在這裡插入圖片描述

到這裡我們的Jenkins安裝和配置就已經安裝完成了!!!可以進入正式的項目新建項目了

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

6.1 Git拉取項目

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

在這裡插入圖片描述
進入密鑰目錄:cd .ssh/
在這裡插入圖片描述
打開我們的git地址://github.com/
在這裡插入圖片描述

新建一個SSH密鑰
在這裡插入圖片描述
在下方輸入我們剛才生成的公鑰 vi id_rsa.pub

在這裡插入圖片描述
這裡我們用一個測試項目,項目代碼很簡單,就不做展示了,有興趣的可以直接下載,項目地址://github.com/muxiaonong/ci-test.git

使用命令下載項目到我們的服務器上:git clone //github.com/muxiaonong/ci-test.git
在這裡插入圖片描述
如果下載成功了說明我們就配置好了

6.2 新建Jenkins項目

1 選擇新建任務

在這裡插入圖片描述

2 輸入任務名稱,然後選擇Maven項目,點擊確定

在這裡插入圖片描述

3 輸入描述,源碼管理選擇git

輸入我們剛才管理的Git地址 //github.com/muxiaonong/ci-test.git
在這裡插入圖片描述

4 點擊添加,選擇Jenkins配置

在這裡插入圖片描述

4 配置憑據

類型選擇SSH
私鑰輸入我們剛才生成的,在目錄 /root/.ssh,文件名為:id_rsa,將裏面的私鑰複製進去
在這裡插入圖片描述
添加好憑據後選擇root
在這裡插入圖片描述

5 輪詢

填寫 * * * * * 意思是每分鐘執行

在這裡插入圖片描述

6 環境變量

當我們第一次配置Jenkins 的時候,由於我們沒有在Jenkins上配置環境變量,會提醒我們需要配置變量,我們點擊下圖中的鏈接,進入配置頁面
在這裡插入圖片描述

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 大功告成

我們點擊立即構建,
在這裡插入圖片描述
然後在執行狀態就可以看到我們在執行,然後鼠標放到 #2上面,會有一個小三角,點擊控制台輸出
在這裡插入圖片描述

11 項目運行

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

在這裡插入圖片描述

七、總結

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

Jenkins對於現在越來越火的微服務來說,簡直就是如魚得水,讓運維和開發都方便了很多,記得之前小農面試的時候,面試官還問,會Jenkins嗎,或者自己搭建嗎,小農相信,當你看過這篇文章之後,如果恰好有面試官或者同事問你,你可以告訴他答案了,感興趣的小夥伴可以動手搭建起來了,有不懂的可以在下面留言,小農看見了會第一時間回復大家,謝謝,大家加油~