Jenkins學習筆記(三) master/slave的初步認識

在前面使用ant自動構建的helloworld的基礎上,實現master把任務分發給slave

試驗所用的三臺機子(1臺master:ubuntu,兩臺slave:分別爲ubuntu、windows)

一、master上的環境設置:

1、  tomcat下部署的jenkins;

2、  gerrit代碼審覈服務器:(在本例中只用來充當源碼倉庫)

gerrit的端口可以自行設置更改,具體配置文件在GRRRIT_SITE/etc/gerrit.config

canonicalWebUrl=http://master_ip:8081 之前由於設置將此設置成127.0.0.1:8081導致只能在本地訪問,給自己提個醒

3、  ant/java的安裝配置,請設置好變量

二、slave上的環境設置:

1、  windows中安裝cygwin,記得install ssh服務;

a)         在cygwin的shell中輸入ssh-host-config

b)         全程yes

c)         net start sshd;net stop sshd(用來關閉和開啓ssh服務)

2、  安裝git/安裝java/安裝ant(安裝較爲簡單,自行網上查閱)

PS:

實驗中出現被分配任務後無法調用本地ant,最終在jenkins master上選用使用指定版本的ant,則master會自動將需要的ant包下載到slave的指定工作空間下的tool目錄,且自動調用。

將JAVA加入path中請使用完整的路徑,不要用%JAVA_HOME%來簡寫;並且將JAVA_HOME/lib下的tools.jar、dt.jar拷貝到Program Files/Java/jre6/lib下。否則可能出現unable to locate tools.jar的錯誤。

3、  ubuntu slave的設置和master的基本一致。

#實驗中出現安裝jdk後Jenkins無法識別的情況,而且已經確認jdk的環境變量已經設置好。之後改裝openjdk,讓其自行設置(jdk6/jdk7自選):

sudo apt-get install openjdk-7-jdk

sudo apt-get install openjdk-6-jdk

sudo apt-get install ant

出現沒法下載的情況時請使用 sudo apt-get update 來獲得最新的軟件包列表。

三、通過ssh實現遠程訪問(該方法實現sshd無密碼登陸)

a)         生成密鑰對:ssh-keygen –t rsa

b)         將id_rsa.pub加入到要訪問機器的~/.ssh/authorized_keys

ssh-copy-id –i  ~/.ssh/id_rsa.pub  username@servername

之後就能使用ssh username@servername 無密碼登陸

PS:/etc/ssh/sshd_config 中開啓PubkeyAuthentication yes

若生成密鑰時使用了密碼,則在登陸時候仍需要密碼,此時可以使用ssh-agent來幫忙。使用ssh-add將自己的密鑰交給其管理,只要輸入一次密碼之後就能無密碼登陸。

四、節點設置和任務分發

1、  在master上建立ubuntu slave 節點:

 

2、  在master上建立windows slave 節點:設置與上圖相仿。

3、  修改helloworld工程設置,從而實現給slave分配任務:

 

4、之後build就可以了。

PS:Windows下使用指定ant version。(手動安裝的ant不知爲何沒法被調用,依照下圖使用指定版本ANT)

 參考資料:

Jenkins Master/Slave架構:

http://www.cnblogs.com/itech/archive/2011/11/11/2245849.html

Jenkins的Linux的Slave的配置:

http://www.cnblogs.com/itech/archive/2011/11/10/2244690.html

Jenkins的Windows的Slave的配置:

http://www.cnblogs.com/itech/archive/2011/11/09/2243025.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章