編者的話:本文使用Jelastic Cloud搭建了Jenkins作業(yè)環(huán)境,包括手動部署和自動部署兩個方式,對Jelastic Cloud感興趣的用戶,可以嘗試注冊一個免費賬戶,進行試驗】
如果不太了解Jenkins,可以先了解如何"手動設(shè)置Jenkins"一節(jié)
?* 如果想自動部署,可以去了解 “自動化”一節(jié)
Jenkins,由于其管理大量節(jié)點,以及執(zhí)行器(executor)對大量創(chuàng)建和部署提供響應(yīng)的能力成為很熱的用于自動持續(xù)集成的工具。每個執(zhí)行器都可以運行Jenkins作業(yè),從而避免了Jenkins服務(wù)器上運行所有任務(wù)的壓力。
Jenkin運行作業(yè)的能力不應(yīng)該被硬件,OS或者作業(yè)運行在哪里所限制,這樣Jenkins作業(yè)機可以在任何設(shè)備上,在其他網(wǎng)絡(luò)上(只要網(wǎng)絡(luò)之間通過HTTP可以交流),在其它操作系統(tǒng)上,例如Windows和Solaris,以及其它任何強勁的硬件上運行。例如,我們可以用Jenkins為Solaris9和其它Java8應(yīng)用編譯一個C++編寫的應(yīng)用,因為Solaris9沒有Java8發(fā)行版,如何設(shè)置一個作業(yè)機是很關(guān)鍵的。
盡管有內(nèi)置方法配置Jenkins作業(yè)機,但是部署多遍是一個很乏味的工作,而且很容易出問題。因此,我們會使用Jenkins Swarm插件來安裝,這樣作業(yè)機可以自動發(fā)現(xiàn)主機并且自主注冊到其中。本示例中,我們會使用Docker和Jelastic云,因為客制化docker映像,操作Jelastic控制面板,生成運行環(huán)境很容易。
Docker最初是一個為Linux分布式應(yīng)用提供并行虛擬化的方案,因為很成功,Docker成為業(yè)界一個事實上的標準,社區(qū)有若干個映像,存放在不同注冊器中。因為這個原因,若干云提供商都在其產(chǎn)品中內(nèi)置了Docker方案,例如Jelastic。本例中,我們使用Jenkins Swarm和Jenkins Swarm 作業(yè)機的Docker映像。
Jelastic是一個使用容器的云PaaS平臺,可以在其中運行Docker容器。本文中,我們會使用Jelastic控制面板生成一個Jenkins服務(wù)端以及兩個Jenkins作業(yè)機。如果不想做這些很細致的動手工作,可以在控制面板中直接導(dǎo)入一個JSON文件生成相關(guān)環(huán)境。
Docker映像
本文中的示例,我們會使用某些(客制化)Docker映像。首先,我們使用 jelastic/jenkins-swarm 作為官方的客制化Docker映像,內(nèi)置了Jenkins Swarm插件。除此之外,我們使用從Carlos Sanchez來的csanchez/jenkins-swarm-slave 映像來構(gòu)建 jelastic/jenkins-swarm-slave 映像,在Jenkins-slave.sh腳本中寫入swarm-client要用的參數(shù),并且寫入和開始和停止函數(shù)來啟停這些函數(shù)
手動設(shè)置Jenkins集群
手動設(shè)置Jenkins集群是一個很艱巨的任務(wù),因為Jelastic控制臺對于設(shè)置環(huán)境來說需要動手能力很強。我們可以通過以下步驟設(shè)置Jenkins集群:
點擊Jelastic控制面板左上角New Environment按鈕,打開Docker標簽

然后,點擊 Select Container 按鈕,搜索 jelastic/jenkins-swarm.

?3. 選擇映像,點擊 Extra 按鈕,選擇映像 jelastic/jenkins-swarm-slave.

將Jenkins作業(yè)機容器和Jenkins服務(wù)器連接起來。點擊在configuration部分的“Links”,點擊Add,設(shè)置Jenkins的別名。然后保存,應(yīng)用

?5. 本示例中,可以每個Docker映像使用一個節(jié)點和默認cloudlets。最后,命名環(huán)境,點擊Create按鈕。

幾分鐘后,Jenkins集群就配置好了??梢栽跒g覽器中點擊Open訪問了


?##自動化##
上一節(jié)中有足夠步驟實現(xiàn)自動部署。在Jelastic平臺上,可以導(dǎo)入JSON定義的環(huán)境變量,以下步驟中詳細定義。