[轉]Jenkins使用 管理節點


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

Jenkins使用 <wbr>管理節點  

創建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。 

Jenkins使用 <wbr>管理節點

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

Jenkins使用 <wbr>管理節點

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

Jenkins使用 <wbr>管理節點  


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


Jenkins使用 <wbr>管理節點

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


Jenkins使用 <wbr>管理節點


Jenkins使用 <wbr>管理節點


Jenkins使用 <wbr>管理節點  

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


Jenkins使用 <wbr>管理節點  

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


Jenkins使用 <wbr>管理節點  

設置 LocalAccountTokenFilterPolicy 值 1。 


Jenkins使用 <wbr>管理節點  

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


Jenkins使用 <wbr>管理節點  

點擊“高級” 


Jenkins使用 <wbr>管理節點  

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


Jenkins使用 <wbr>管理節點  

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


Jenkins使用 <wbr>管理節點

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


Jenkins使用 <wbr>管理節點  

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


Jenkins使用 <wbr>管理節點

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


Jenkins使用 <wbr>管理節點  

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


Jenkins使用 <wbr>管理節點  

看到已經成功連接的提示 


Jenkins使用 <wbr>管理節點  

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


Jenkins使用 <wbr>管理節點  

創建類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” 


Jenkins使用 <wbr>管理節點  


Jenkins使用 <wbr>管理節點

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


Jenkins使用 <wbr>管理節點


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


Jenkins使用 <wbr>管理節點

下面在這台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節點類似。 


Jenkins使用 <wbr>管理節點

在“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.”。 


Jenkins使用 <wbr>管理節點

連接成功! 


Jenkins使用 <wbr>管理節點  

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


Jenkins使用 <wbr>管理節點 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM