qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Jenkins實戰演練之Linux節點任務配置

          現在我們已經搭建好了基本的Jenkins環境,在這一集里,我們說一說如何管理節點。 
          進入“系統管理”中的“管理節點”。 

           

          創建Windos系統的奴隸節點 

          先創建一臺安裝了Win7系統的虛擬機,作為Jenkins構建的奴隸節點。比如我這臺機器IP為172.16.12.81,用戶名為user1,密碼為123456。然后在C盤創建路徑 C:\ci_jenkins 作為Jenkins操作的根目錄。另外還需要在這臺機器上安裝JDK或JRE,我以前配置時這里如果使用64位的JDK會有問題,所以我也不再實驗了,這里直接安裝32位的JDK。 
          在Jenkins的“管理節點”頁面上,點擊“新建節點”,類型選擇“Dumb Slave”,名稱比如叫“172.16.12.81_win7”,點擊“OK”按鈕進入設置頁面。 
          其中“# of executors”我們選擇4,表示可以同時進行4個構建。 
          “Remote FS root”填寫之前創建的目錄 C:\ci_jenkins 
          “Labels” 是這樣的,假如你的需求是要求同時在 WindowsXP,Win7這兩個操作系統上構建,你就創建兩個奴隸節點,一個安裝WindowsXP系統,一個安裝Win7系統,這兩個節點的名稱不一樣,但Labels 可以設置成一樣的 win,這樣在創建Job時指定在Label為win的節點上構建時,兩臺機器都會進行構建,當然這里可以用空格分隔地添加幾個Label。 
          “Launch method”這里我們選擇“Let Jenkins control this Windows slave as a Windows service”,這種配置方式有點自虐,不過配置好的話是最好用的。 
          點擊“高級”按鈕,在“Path to java executable”輸入java路徑,特別注意,不能寫成 java.exe。 



          保存后,點擊“Launch slave agent”按鈕。看到下面的錯誤信息: 



          別急,意料之中。在上個頁面中你留意到有這么一個鏈接“subtle problems”,里面就是配置windows系統奴隸節點的常見問題。 

           


          我們回到Win7這臺奴隸節點,按照鏈接里的內容好好修理修理它。 
          首選要保證這個用戶是本地的“Administrator”組成員,如果你和我一樣是在安裝操作系統時創建的用戶,這一條是滿足的。 
          點擊“開始”按鈕,輸入“gpedit.msc”,打開“本地組策略編輯器”。 
          在“計算機配置”→“管理模版”→“系統”→“用戶配置文件”中,將“在用戶注銷時不要強制卸載用戶注冊表”設置為“已啟用”。 




          下面就是設置防火墻的策略了,這個我嫌麻煩,干脆把防火墻關閉了。 








           

          接下來打開“注冊表編輯器” 


           

          在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 下面創建一個 DWORD(32-位)值。 


           

          設置 LocalAccountTokenFilterPolicy 值 1。 


           

          按 Ctrl + F,搜索 “{76A64158-CB41-11D1-8B02-00600806D9B6}”,右鍵選擇“權限”,需要注意的是,它在 HKEY_CLASSES_ROOT\CLSID 下。 


           

          點擊“高級” 


           

          切換到“所有者”頁簽,將“當前所有者”修改為“Administrators”組。 


           

          再切換到“權限”頁簽,選擇“Administrators”組,點擊“編輯”按鈕,修改成“完全控制”。 




          再把“所有者”切換回“TrustedInstaller”(NT Service\TrustedInstaller) 


           

          注冊表都設置好以后,最好注銷再登錄一下,讓注冊表生效。 
          在“計算機管理”的“服務”中,找到“Remote Registry ”服務。 




          啟動它,并設置啟動類型為“自動”。 


           

          現在重新在Jenkins頁面上點擊“Launch slave agent”按鈕。 


           

          看到已經成功連接的提示 


           

          回到首頁,可以看到Win7的系統已經就緒。 


           

          創建類Unix系統(Linux,OSX等)的奴隸節點 

          對于類Unix系統,創建節點就要簡單許多,一般默認都安裝了SSH的服務,我們的計劃是讓Jenkins通過SSH來登錄并管理奴隸節點。但通過用戶名和密碼訪問SSH不是一個特別好的方式,我們可以配置通過私鑰的方式來登錄SSH。 
          比如我們以一臺CentOS系統的虛擬機為例,假設IP為172.16.12.82。我們先在上面創建一個用于登錄的用戶jenkins。然后登錄到這個用戶。 

          Java代碼  收藏代碼
          1. [root@svr82 ~]# useradd jenkins  
          2. [root@svr82 ~]# su - jenkins  
          3. [jenkins@svr82 ~]$  


          生成一個密鑰對(這中間會有幾次詢問,都直接輸入回車)。 

          Java代碼  收藏代碼
          1. [jenkins@svr82 ~]$ ssh-keygen -t rsa  
          2. Generating public/private rsa key pair.  
          3. Enter file in which to save the key (/home/jenkins/.ssh/id_rsa):   
          4. Created directory '/home/jenkins/.ssh'.  
          5. Enter passphrase (empty for no passphrase):   
          6. Enter same passphrase again:   
          7. Your identification has been saved in /home/jenkins/.ssh/id_rsa.  
          8. Your public key has been saved in /home/jenkins/.ssh/id_rsa.pub.  
          9. The key fingerprint is:  
          10. 6b:81:28:af:5e:54:bb:af:cf:e3:f5:2d:0a:aa:50:71 jenkins@svr82.vow.funshion.com  
          11. [jenkins@svr82 ~]$  


          現在可以看到在jenkins用戶的家目錄下的 .ssh 目錄下創建了兩個密鑰:公鑰 id_rsa.pub 和私鑰 id_rsa。 

          Java代碼  收藏代碼
          1. [jenkins@svr82 ~]$ ls -l ~/.ssh/  
          2. 總計 8  
          3. -rw------- 1 jenkins jenkins 1675 10-14 18:26 id_rsa  
          4. -rw-r--r-- 1 jenkins jenkins  412 10-14 18:26 id_rsa.pub  


          現在將公鑰添加到這臺主機的 authorized_keys 文件中,并修改權限為600 

          Java代碼  收藏代碼
          1. [jenkins@svr82 .ssh]$ pwd  
          2. /home/jenkins/.ssh  
          3. [jenkins@svr82 .ssh]$ cat id_rsa.pub >> authorized_keys     
          4. [jenkins@svr82 .ssh]$ chmod 600 authorized_keys  


          現在 id_rsa 和 id_rsa.pub 這兩個文件不是必須要保留的這臺服務器上,但你要保存好 id_rsa 因為這個是訪問此服務器的私鑰。 
          還有一點需要特別注意的是假如你的 ~/.ssh 目錄是自己手動創建的,或者 id_rsa 從其他地方拷貝來的,如果此時發現無法通過私鑰進行 ssh 連接時,請檢查下面文件/目錄的權限是否和我列出的一樣。 

          Java代碼  收藏代碼
          1. [jenkins@svr82 ~]$ ls -l ~/.ssh/authorized_keys   
          2. -rw------- 1 jenkins jenkins 412 10-14 18:51 /home/jenkins/.ssh/authorized_keys  
          3. [jenkins@svr82 ~]$ ls -l ~/.ssh/id_rsa  
          4. -rw------- 1 jenkins jenkins 1675 10-14 18:26 /home/jenkins/.ssh/id_rsa  
          5. [jenkins@svr82 ~]$ ls -ld ~/.ssh    
          6. drwx------ 2 jenkins jenkins 4096 10-14 18:51 /home/jenkins/.ssh  


          回到Jenkis的頁面上,我們先來配置一下訪問這個服務器的“Credential”,在Jenkins頁面的左側快捷欄中點擊“Credentials” 


           




          這里面有個憑據域的概念,其實他的目的就是,假如我們配置了很多登錄服務器的憑據,通過各個域來分類整理這些憑據,比如所有訪問服務器A的憑據都在一個域里這種情況。我們目前暫時先不創建域,直接選擇默認的“Global credentials”,點擊左側的“Add Credentials”添加訪問服務器的憑據。 





          在“Kind”里,我們選擇“SSH Username with private key”;“Username”這里輸入登錄上面服務器的用戶名“jenkins”;“Private Key”這里選擇“Enter directly”,輸入內容就是上面步驟里創建的 id_rsa 文件內容。 




          下面在這臺CentOS服務器上裝好JDK,準備工作基本上完成了。 

          Java代碼  收藏代碼
          1. [root@svr82 ~]# java -version  
          2. java version "1.6.0_25"  
          3. Java(TM) SE Runtime Environment (build 1.6.0_25-b06)  
          4. Java HotSpot(TM) 64-Bit Server VM (build 20.0-b11, mixed mode)  


          下面在Jenkins的“系統管理”→ “管理節點”中點擊“新建節點”,填寫內容和之前創建Windows節點類似。 




          在“Launch method”中選擇“Launch slave agents on Unix machines via SSH”;“Credentials”這里選擇我們剛剛創建的憑據。 

          特別要注意的是“JVM Options”這里,“-Djava.awt.headless=true”不是每個類Unix系統都必須輸入,但我發現在蘋果的OSX系統中不設置會報錯誤“Can't connect to window server - not enough permissions.”。 




          連接成功! 


           

          現在我們有兩個可以用的奴隸節點了: 


           

          posted on 2014-02-18 14:09 順其自然EVO 閱讀(5674) 評論(0)  編輯  收藏 所屬分類: 持續集成

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 华宁县| 德州市| 漳州市| 乌恰县| 岚皋县| 昭通市| 嘉禾县| 呼和浩特市| 丹江口市| 孝感市| 丰原市| 虎林市| 咸宁市| 金川县| 金沙县| 清镇市| 宁远县| 柞水县| 湘西| 宁夏| 皋兰县| 东乌珠穆沁旗| 台东市| 新河县| 宁武县| 万全县| 昌黎县| 崇左市| 安丘市| 怀远县| 哈巴河县| 高平市| 门头沟区| 潼南县| 恩平市| 乌鲁木齐市| 鄢陵县| 洛南县| 民和| 秦安县| 东乌珠穆沁旗|