Jenkins設置Window編譯環境從節點

需求

  • 不同的代碼要求不同的編譯環境 - 例如 Android, Window等
  • 減輕服務器壓力,所以需要多個編譯服務器

在主服務器的Jenkins系統上增加Window從節點

  1. root 用戶登錄 Jenkins
  2. 系統管理 -> 節點管理 -> 新建節點
    • 節點名稱windows for vs
    • Dumb Slave
    • 點擊 OK 按鈕
    • 這裏寫圖片描述
  3. 進入 節點設置 頁面

    • of executors 選擇 1 - 爲可以同時進行幾個並行任務,可選擇多個
    • 遠程工作目錄c:\ci_jenkins - 可自定義
    • 標籤 : win_vs - 可自定義
    • 用法 : 只允許綁定到這臺機器的Job - 因爲我們就是要編譯需要VS環境的程序
    • 啓動方法 : Let Jenkins control the Windows as a Windows service - 網頁建議選擇 Launch slave agents using Java Web Start 這個,我覺得可以試一下
      • Administrator user name : 填寫要配置的Windows的管理員用戶名
      • Password : 密碼
      • Host : 要配置的Windows的IP地址 - 最好用IP地址,如果用加入 hosts 中的機器名映射,可能會出現主機已經存在之類的錯誤
    • 這裏寫圖片描述
  4. 點擊進入 windows for vs
    這裏寫圖片描述

Windows機器的配置

安裝 Jenkins

  1. 下載地址爲:http://mirrors.jenkins-ci.org/windows/
  2. 這裏下載的是:jenkins-1.626.zip
  3. 在Windows系統上安裝
  4. 成功訪問 http://127.0.0.1:8080/

修改 Windows系統的 hosts 文件

添加

192.168.31.122 zjc vzjc zjc.com vzjc.com mail.vzjc.com gitlab.zjc.com mail.zjc.com review.zjc.com jenkins.zjc.com
192.168.31.236 jenkins.win.zjc.com

Windows上安裝 NginxPhp 支持 - 不需要 MySql

參考 Windows之安裝Nginx、PHP、mysql

Windows上配置 Nginx

在文件 C:\zjc\server\nginx\conf\nginx.conf 中的 http 節點添加

server {
  listen *:80;
  server_name jenkins.win.zjc.com;

  location / {
    proxy_pass  http://localhost:8080;
  }
}

重啓 Nginx
正常訪問 http://jenkins.win.zjc.com/

可能遇到的錯誤

防火牆阻擋、DCOM需要配置

現象:
Failed to connect to port 135 of 192.168.31.236. Is Windows firewall blocking this port? Or did you disable DCOM service?
ERROR: Message not found for errorCode: 0x8001FFFF
org.jinterop.dcom.common.JIException: Message not founnd ...

解決方案

可以根據網頁提示,找到網頁提供的解決方案

  1. Windows上控制面板中關閉防火牆

    這裏寫圖片描述

  2. 設置DCOM
    需要設置編譯環境所在的Windows系統

    • 確保設置從節點時候設置的用戶爲管理員用戶
    • 用戶註銷時不要強制卸載用戶註冊表 - 這個需要 Vista 以上
    • 開始菜單 -> 運行 -> gpedit.msc -> 本地計算 策略 -> 計算機配置 -> 管理模板 -> 系統 -> 用戶配置文件 : 在用戶註銷時不要強制卸載用戶註冊表已啓動
    • 這裏寫圖片描述
    • 配置DCOM 開始菜單 -> 運行 -> regedit
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 下新建 DWORD(32-位)
      • LocalAccountTokenFilterPolicy : 1
    • 搜索值 {76A64158-CB41-11D1-8B02-00600806D9B6}
      • 在HKEY_CLASS_ROOT\CLSID下面
      • 右鍵 -> 權限 -> 高級 -> 所有者 : 替換成 Administrators
      • 這裏寫圖片描述
      • 再切換到 權限 頁籤,選擇Administrators組,修改成完全控制
      • 這裏寫圖片描述
      • 再把 所有者 切換回 TrustedInstaller (NT Service\TrustedInstaller)
      • 這裏寫圖片描述
      • 計算機管理 ->服務 -> Remote Registry : 啓動它並設置爲 自動啓動
      • 這裏寫圖片描述
      • 重啓 windows 系統

檢測不到 JDK

現象

Checking if Java exists
No Java found. Downloading JDK

解決方案
如果Jenkins自動安裝成功就自動安裝,不然手動安裝一下
無論系統是32還是64位的都安裝32位的好了,例如 jdk-8u45-windows-i586.exe
可以從官網下載最新版的EXE程序

安裝之後在主Jenkins網站看到的是這個樣子的

這裏寫圖片描述

配置工程

在工程 ITEM 配置的 Restrict where this project can be run -> Label Expression 填寫節點的標籤 win_vs 即可

參考

http://blog.sina.com.cn/s/blog_87f0f17e0101iq8a.html
http://blog.csdn.net/achang21/article/details/45153199
http://blog.gmane.org/gmane.network.samba.java/page=87

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