運用Jenkins實現(xiàn)持續(xù)集成

1 Jenkins是什么玩意

Jenkins菩佑,原名Hudson凝化,2011年改為現(xiàn)在的名字搓劫,它 是一個開源的實現(xiàn)持續(xù)集成的 軟件工具枪向。官方網(wǎng)站:http://jenkins-ci.org/秘蛔。
Jenkins 能實施監(jiān)控集成中存在的錯誤,提供詳細的日志文件和提醒功能蛙埂,還能用圖 表的形式形象地展示項目構建的趨勢和穩(wěn)定性绣的。

特點:

  • 易安裝:僅僅一個 java -jar jenkins.war欲账,從官網(wǎng)下載該文件后屡江,直接運行,無需額 外的安裝赛不,更無需安裝數(shù)據(jù)庫惩嘉;
  • 易配置:提供友好的GUI配置界面;
  • 變更支持:Jenkins能從代碼倉庫(Subversion/CVS)中獲取并產(chǎn)生代碼更新列表并 輸出到編譯輸出信息中俄删;
  • 支持永久鏈接:用戶是通過web來訪問Jenkins的宏怔,而這些web頁面的鏈接地址都是 永久鏈接地址,因此臊诊,你可以在各種文檔中直接使用該鏈接;
  • 集成E-Mail/RSS/IM:當完成一次集成時斜脂,可通過這些工具實時告訴你集成結果(據(jù) 我所知抓艳,構建一次集成需要花費一定時間,有了這個功能帚戳,你就可以在等待結果過程 中玷或,干別的事情);
  • JUnit/TestNG測試報告:也就是用以圖表等形式提供詳細的測試報表功能片任;
  • 支持分布式構建:Jenkins可以把集成構建等工作分發(fā)到多臺計算機中完成偏友;
  • 文件指紋信息:Jenkins會保存哪次集成構建產(chǎn)生了哪些jars文件,哪一次集成構建使 用了哪個版本的jars文件等構建記錄对供;
  • 支持第三方插件:使得 Jenkins 變得越來越強大

2 Jenkins安裝

1. 安裝Jenkins需要先進行JDK安裝(在宿主機上而不是docker中 )(如果宿主機里有省略此步)

(1)將jdk-8u171-linux-x64.rpm上傳至服務器(虛擬機)
(2)執(zhí)行安裝命令
rpm ‐ivh jdk‐8u171‐linux‐x64.rpm

2. Jenkins安裝與啟動

(1)下載jenkins
wget https://pkg.jenkins.io/redhat/jenkins‐2.83‐1.1.noarch.rpm
(2)安裝jenkins
rpm ‐ivh jenkins‐2.83‐1.1.noarch.rpm
(3)配置jenkins
vi /etc/sysconfig/jenkins
修改用戶和端口
JENKINS_USER="root"
JENKINS_PORT="8888"
(4)啟動服務
systemctl start jenkins
(5)訪問鏈接 http://192.168.184.135:8888
從/var/lib/jenkins/secrets/initialAdminPassword中獲取初始密碼串

(6)安裝插件

(7)新建用戶
我的Jenkins賬號密碼

完成安裝進入主界面

3 Jenkins插件安裝

1 安裝Maven插件

(1)點擊左側的“系統(tǒng)管理”菜單 ,然后點擊

(2)選擇“可選插件”選項卡命爬,搜索maven趟咆,在列表中選擇Maven Integration 哟忍,點擊“直 接安裝”按鈕

看到如下圖時拗慨,表示已經(jīng)完成
2 安裝Git插件

步驟如上圖,搜索git

4 全局工具配置

1 安裝Maven與本地倉庫

(1)將Maven壓縮包上傳至服務器(虛擬機)
(2)解壓
tar zxvf apache‐maven‐3.3.9‐bin.tar.gz
(3)移動目錄
mv apache‐maven‐3.3.9 /usr/local/maven
(4)編輯setting.xml配置文件 vi /usr/local/maven/conf/settings.xml 京景,配置本地倉 庫目錄,內容如下
<localRepository>/usr/local/repository</localRepository>
(5)將開發(fā)環(huán)境的本地倉庫上傳至服務器(虛擬機)并移動到/usr/local/repository
mv reponsitory_boot /usr/local/repository
執(zhí)行此步是為了以后在打包的時候不必重新下載窿冯,縮短打包的時間。
(6)編輯setting.xml配置文件 vi /usr/local/maven/conf/settings.xml

<pluginGroups> 
<pluginGroup>com.spotify</pluginGroup> 
</pluginGroups>
2 全局工具配置

選擇系統(tǒng)管理确徙,全局工具配置

(1)JDK配置

設置javahome為 /usr/java/jdk1.8.0_171-amd64

(2)Git配置 (本地已經(jīng)安裝了Git軟件)

(3)Maven配置

5 持續(xù)集成

1 創(chuàng)建任務

(1)回到首頁醒串,點擊新建按鈕 .如下圖执桌,輸入名稱,選擇創(chuàng)建一個Maven項目厦凤,點擊OK

(2)源碼管理鼻吮,選擇Git

(3)Build

命令:
clean package docker:build ‐DpushImage
用于清除、打包较鼓,構建docker鏡像 最后點擊“保存”按鈕

2 執(zhí)行任務

返回首頁椎木,在列表中找到我們剛才創(chuàng)建的任務


點擊右邊的綠色箭頭按鈕,即可執(zhí)行此任務.
點擊下面正在執(zhí)行的任務

可以看到實時輸出的日志

這就是鏡像做好了在上傳博烂,如果你之前沒有將你的本地倉庫上傳到服務器香椎,會首先下載 依賴的jar包,接下來就是漫長的等待了禽篱。
看到下面的結果就表示你已經(jīng)成功了

首戰(zhàn)告捷畜伐!哈哈,興奮不躺率?返回首頁 看到列表

我們在瀏覽器看一下docker私有倉庫
http://192.168.184.135:5000/v2/_catalog ,會看到tensquare_eureka已經(jīng)上傳成功了

{"repositories":["jdk1.8","tensquare_eureka"]}

按此方法完成其它微服務的構建

3 完成配置中心的持續(xù)集成

(1)配置中心的pom.xml中玛界,添加docker插件

    <build><!--這個build使得項目可以打包到linux的docker里-->
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!--‐ docker的maven插件,官網(wǎng):https://github.com/spotify/docker‐maven‐plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                <configuration>
                    <imageName>192.1XX.1XX.1XX:5000/${project.artifactId}:${project.version}</imageName>
                    <!--<groupId>com.tensquare</groupId> version>1.0-SNAPSHOT</version>-->
                    <baseImage>jdk1.8</baseImage>
                    <entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint><!--以我們起的finalName打個jar包-->
                    <resources><!--指定打好的jar包去哪里,最終變成app.jar-->
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <dockerHost>http://192.1XX.1XX.131:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

(2)提交代碼到git
(3)按照同樣的方法悼吱,完成配置中心的持續(xù)集成慎框。完成后會看到私有倉庫中添加了 zyh_config

{"repositories":["jdk1.8","zyh_config","zyh_eureka"]}

(4)創(chuàng)建rabbitMQ容器
docker run ‐di ‐‐name=zyh_rabbitmq ‐p 5671:5617 ‐p 5672:5672 ‐p 4369:4369 ‐p 15671:15671 ‐p 15672:15672 ‐p 25672:25672 rabbitmq:management
(5)創(chuàng)建容器:
docker run ‐di ‐‐name=config ‐p 12000:12000 192.168.184.135:5000/zyh_config:1.0‐SNAPSHOT

4 完成基礎微服務的持續(xù)集成

(1)代碼中添加docker插件 ,更改配置文件中的配置中心的地址 為http://192.168.184.135:12000
(2)提交代碼到git
(3)按照同樣的方式構建基礎微服務
(4)準備數(shù)據(jù)庫環(huán)境
docker run ‐di ‐‐name=mysql ‐p 3306:3306 ‐e MYSQL_ROOT_PASSWORD=123456 centos/mysql‐57‐centos7
(5)創(chuàng)建基礎微服務容器
docker run ‐di ‐‐name=base ‐p 9001:9001 192.168.184.135:5000/zyh_base:1.0‐SNAPSHOT
5 完成微服務網(wǎng)關的構建
按照同樣的步驟完成微服務網(wǎng)關zyh_web的構建
6 完成其它微服務的構建

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市后添,隨后出現(xiàn)的幾起案子笨枯,更是在濱河造成了極大的恐慌,老刑警劉巖遇西,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件馅精,死亡現(xiàn)場離奇詭異,居然都是意外死亡粱檀,警方通過查閱死者的電腦和手機洲敢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茄蚯,“玉大人沦疾,你說我怎么就攤上這事〉诙樱” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵刨秆,是天一觀的道長凳谦。 經(jīng)常有香客問我,道長衡未,這世上最難降的妖魔是什么尸执? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任家凯,我火速辦了婚禮,結果婚禮上如失,老公的妹妹穿的比我還像新娘绊诲。我一直安慰自己,他們只是感情好褪贵,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布掂之。 她就那樣靜靜地躺著,像睡著了一般脆丁。 火紅的嫁衣襯著肌膚如雪世舰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天槽卫,我揣著相機與錄音跟压,去河邊找鬼。 笑死歼培,一個胖子當著我的面吹牛震蒋,可吹牛的內容都是我干的。 我是一名探鬼主播躲庄,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼查剖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了读跷?” 一聲冷哼從身側響起梗搅,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎效览,沒想到半個月后无切,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡丐枉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年哆键,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘦锹。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡籍嘹,死狀恐怖,靈堂內的尸體忽然破棺而出弯院,到底是詐尸還是另有隱情辱士,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布听绳,位于F島的核電站颂碘,受9級特大地震影響,放射性物質發(fā)生泄漏椅挣。R本人自食惡果不足惜头岔,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一塔拳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧峡竣,春花似錦靠抑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至攻谁,卻和暖如春稚伍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背戚宦。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工个曙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人受楼。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓垦搬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親艳汽。 傳聞我的和親對象是個殘疾皇子猴贰,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內容