需求

  • 不同的代码要求不同的编译环境 - 例如 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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐