我們都知道在公司裡,一個軟體的開發到釋出,需要經曆一系列的流程,而且目前也已經形成了一套标準流程。一個大的功能子產品的開發,往往是幾個人一起進行的,而每個人寫完一些小功能的代碼後,一般都需要将代碼內建到主幹,或者說将代碼都合并在一起。這種将代碼內建到主幹的操作,可能一天需要進行很多次,而且是多人進行。這樣的一個環節就是持續內建,在這個開發到釋出的流程中最重要的組成部分就是持續內建。
開發到釋出的流程大緻如下:
産品設計成型 -> 開發人員開發代碼 -> 測試人員測試功能 -> 運維人員釋出上線
其中的幾個概念:
持續內建 (Continuous integration,簡稱CI),頻繁地(一天多次)将代碼內建到主幹。
持續傳遞(Continuous delivery),頻繁地(一天多次)将內建的代碼傳遞給測試人員測試。
持續部署(continuous deployment),頻繁地(一天多次)将測試好的代碼交給運維人員部署。
示意圖:
關于持續內建的詳細可參考以下文章:
<a href="http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html">http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html</a>
由于這種頻繁地、一天多次的操作,重複性很高,是以我們希望可以自動化的去完成這些重複的環節,提高整個流程的效率。這時我們就需要借助一些工具來完成自動化了,對于小公司來說收費的工具成本太高劃不來,是以像Jenkins這樣開源的、優秀的工具就流行了起來。
Jenkins是一個用Java編寫的開源的持續內建工具,用于監控持續重複的工作,旨在提供一個開放易用的軟體平台,使軟體的持續內建變成可能。在與Oracle發生争執後,項目從Hudson項目複刻。
Jenkins提供了軟體開發的持續內建服務。它運作在Servlet容器中(例如Apache Tomcat)。它支援軟體配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以執行基于Apache Ant和Apache Maven的項目,以及任意的Shell腳本和Windows批處理指令。Jenkins的主要開發者是川口耕介。Jenkins是在MIT許可證下釋出的自由軟體。
可以通過各種手段觸發建構。例如送出給版本控制系統時被觸發,也可以通過類似Cron的機制排程,也可以在其他的建構已經完成時,還可以通過一個特定的URL進行請求。
Jenkins概要:
Jenkins是一個開源的、可擴充的持續內建、傳遞、部署(軟體/代碼的編譯、打包、部署)基于web界面的平台。
Jenkins是一個工具集,提供了各種各樣的插件
比如擷取git上最新的代碼
比如可以幫你編譯源代碼
比如可以調用自定義的shell腳本遠端執行指令
jenkins官網位址如下:
<a href="https://jenkins.io/">https://jenkins.io</a>
jenkins的官方文檔位址如下:
<a href="https://jenkins.io/doc/">https://jenkins.io/doc/</a>
安裝jenkins的最低配置: 不少于256M記憶體,不低于1G磁盤,jdk版本>=8
如果隻需要java的運作環境的話,用yum安裝個openjdk就可以了,安裝指令如下:
yum install -y java-1.8.0-openjdk
下載下傳jenkins的yum源:
安裝jenkins.io.key:
yum安裝jenkins:
安裝完之後啟動jenkins服務:
接着就可以在windows上的浏覽器裡,通路你Linux的8080端口,進行 Jenkins 的安裝:
按照以上提示,查詢預設的密碼:
點選繼續後會進行一段時間的初始化,然後就會顯示以下界面:
之後就會開始安裝插件了:
安裝完插件之後,就會進入建立管理者使用者的界面:
安裝完成:
以上我們已經安裝好了jenkins,現在我們先簡單了解一下jenkins的一些目錄:
1.jenkins的安裝目錄:
簡單介紹幾個目錄:
jobs目錄裡存儲着我們在jenkins上建立的任務
logs日志目錄
nodes在多節點的時候要用到
plugins是jenkins插件的存儲目錄
secrets密碼密鑰相關的目錄
updates版本更新時要用到的目錄
users存儲使用者資訊的目錄
workflow-libs工作庫
2.jenkins的配置檔案:
簡單介紹一下jenkins配置檔案中一些參數的含義:
3.jenkins的日志檔案所在的目錄:
<code>[root@server ~]#</code>
<code></code>
<code>本文轉自 ZeroOne01 51CTO部落格,原文連結:http://blog.51cto.com/zero01/2070594,如需轉載請自行聯系原作者</code>