1. 程式人生 > >jenkins配置master-slave並發布dubbo服務

jenkins配置master-slave並發布dubbo服務

$path ppk exp blog ins tps 點擊 img 節點

從有道雲筆記中復制,格式會有變化。

一、配置步驟 1. 使用已有的虛擬電腦備份(CentOS7.2, 安裝有JDK8、MAVEN3.5、JENKINS2.73.3-1.1、GIT1.8.3.1)、分別導入為兩臺測試用的虛擬電腦(IP分別設置為120、122,其中120當作MASTER,122當作SLAVE) 2、 登錄120的Jenkins,進入“系統管理/管理節點”,新建一個SLAVE節點,節點信息如下圖: 技術分享圖片 創建後可以在節點列表中看到新增的節點,進入slave節點運行,會在122中安裝slave-agent,如果未配置JAVA的環境變量,會從ORACLE官網下載(當然是下不成功的): 技術分享圖片
3. 新建一個JOB進行測試,與普通的dubbo服務構建的差別在於需要配置“參數化構建過程”,如圖: 技術分享圖片 下拉框中的node選項需要 安裝插件“Node and Label parameter plugin” 4. 運行JOB,配置了“參數化構建過程後”,“立即構建”按鈕消失,出現“Build with Parameters”代替: 技術分享圖片 點擊運行後,出現NODE列表,選擇需要發布的節點,點擊構建,多選無效,需要發布多個節點則需要操作多次。 發布後,可以看到有兩個正在運行的項目: 技術分享圖片 到zookeeper客戶端中查看註冊的dubbo服務,可以看到新增了兩個服務提供者 技術分享圖片 二、配置過程中遇到的問題: 1. 在120中安裝git時,出現404錯誤,原因是yum緩存出錯,執行yum clean all後再安裝即可,但是122卻沒有這個問題,非常奇怪,明明是從同一個鏡像導入的虛擬電腦。 2. jenkins中,默認未安裝node插件,需要手動安裝 3. 安裝slave-agent時,發現會自動下載jek,原因是未在slave節點中配置對應的環境變量,而jenkins並不會讀取/etc/profile中的環境變量 附: Jenkins Master/Slave架構 摘自:http://www.cnblogs.com/itech/archive/2011/11/11/2245849.html 一 Jenkins Master/Slave架構 Master/Slave相當於Server和agent的概念。Master提供web接口讓用戶來管理job和slave,job可以運行在master本機或者被分配到slave上運行。一個master可以關聯多個slave用來為不同的job或相同的job的不同配置來服務。 當job被分配到slave上運行的時候,此時master和slave其實是建立的雙向字節流的連接,其中連接方法主要有如下幾種: 1)master通過ssh來啟動slave Jenkins內置有ssh客戶端實現,可以用來與遠程的sshd通信,從而啟動slave agent。這是對*unix系統的slave最方便的方法,因為*unix系統一般默認安裝有sshd。在創建ssh連接的slave的時候,你需要提供slave的host名字,用戶名和ssh證書。創建public/private keys,然後將public key拷貝到slave的~/.ssh/authorized_keys中,將private key 保存到master上某ppk文件中。jenkins將會自動地完成其他的配置工作,例如copy slave agent的binary,啟動和停止slave。但是你的job運行所依賴其他的項目需要你自己設置。 2)master通過WMI+DCOM來啟動windows slave 對於Windows的Slave,Jenkins可以使用Windows2000及以後內置的遠程管理功能(WMI+DCOM),你只需要提供對slave有管理員訪問權限的用戶名和密碼,jenkins將遠程地創建windows service然後遠程地啟動和停止他們。 對於windows的系統,這是最方便的方法,但是此方法不允許運行有顯示交互的GUI程序。 註意:不想其他類型的鏈接方式,此種方式slave(note)的名字非常重要,將被用來當做slave的地址訪問slave。 3)實現自己的腳本來啟動slave 如果上面成套的方法不夠靈活,你可以實現自己的腳本來啟動slave。你需要將啟動腳本放到master,然後告訴jenkins master在需要的時候調用此腳本來啟動slave。 典型地,你的腳本使用遠程程序執行機制,例如SSH,RSH,或類似的方法(在windows,可以通過cygwin或psexec來完成), 在腳本的最後需要執行類似java -jar slave.jar來啟動slave。slave.jar可以從http://yourjenkinsserver:port/jnlpjars/slave.jar下載,也可以在腳本的開始先下載此slave.jar從而保證slave.jar正確的版本。 但是如果使用ssh slave plugin的話,此plugin將自動地更新slave.jar。 4)通過Java web start來啟動slave jave web start(jnlp)是另一種啟動slave的方法。用這種方法你需要登錄到slave,打開瀏覽器,打開slave的配置頁面來連接。還可以安裝為windows service來使得slave在後臺運行。 如果你需要運行的程序需要UI的交互,使用下面的方法:在slave系統上創建jenkins用戶,設置自動登錄,在系統的startup items增加slave JNLP文件的快捷方式,使得slave在系統登錄的時候自動啟動。 5)直接啟動slave 此方式類似於java web start,可以方便地在*unix系統上將slave運行為daemon。需要配置slave為JNLP類型連接,然後在slave機器上執行 java -jar slave.jar -jnlpUrl http://yourserver:port/computer/slave-name/slave-agent.jnlp 二 Slave配置的好的建議 * 每個slave都有用戶jenkins,所有的機器使用相同的UID和GID,使得slave的管理更加簡單; * 每個機器上jenkins用戶的home目錄都相同/home/jenkins, 擁有相同的目錄結構使得維護簡單; * 所有的slave運行sshd,windows運行cygwin sshd; * 所有的slave安裝ntp client,用來與相同的ntp server同步; * 使用腳本sh來自動地配置slave的環境,例如創建jenkins用戶,安裝sshd,安裝java,ant,maven等; * 使用腳本來啟動slave,保證slave總是運行在相同的參數下: #!/bin/bash JAVA_HOME=/opt/SUN/jdk1.6.0_04 PATH=$PATH:$JAVA_HOME/bin export PATH java -jar /var/jenkins/bin/slave.jar

jenkins配置master-slave並發布dubbo服務