本文描述了如何在Jenkins上安装Windows slave。
请参考Jenkins Windows pipeline 了解如何编写Jenkins pipeline for Windows。
打开Manage Jenkins -> Configure Global Security,找到Agents,选择TCP port for JNLP agents为Random。
打开Manage Jenkins -> Manage Nodes,点击New Node。
输入Node name, 选择Permanent Agent。
填写Node的信息如下: • Remote root directory为在Windows slave机器上Jenkins agent的根目录 • Labels用来给Jenkins job/pipeline来指定在哪些Agent上运行 • Usage选择“Only build jobs with label expression matching this node”配合Labels来使用 • Launch method选择“Launch agent via Java Web start”。
注意:如果没有配置好上面的”TCP port for JNLP agents“,Launch method中看不到“Launch agent via Java Web start"的选项。
打开Manage Jenkins -> Manage Nodes,打开刚才新建的Node。
点击【Launch】按钮来下载Jenkins Agent程序包(slave-agent.jnlp),复制这个程序包到Windows slave机器上的根目录(即Node里面的Remote root directory,比如c:/jenkins)
请先确保在Windows slave上安装了Git, JDK和Maven,并配置好了环境变量。
在Windows slave机器上双击slave-agent.jnlp来运行Jenkins Agent。
运行成功会显示“Connected”。
在Jenkins上,打开Manage Jenkins -> Manage Nodes,检查Node的状态是否为正常连接。
注意:如果Jenkins master和Jenkins slave node的时间不同步,会有警告,需要设置成时间同步。
将Jenkins slave安装为一个Windows服务
可以在Jenkins Agent上点击File,选择Install as Windows Service,将Jenkins slave安装成为一个Windows服务。这样以后Windows重启后这个服务也会自动启动。
可以在Windows 任务管理器的“服务”中查看这个服务“jenkinslave…" 的运行状态。
也可以在Windows服务中查看或编辑"Jenkins agent…"服务。
###5. 为Node配置Git
在Jenkins上,打开Manage Jenkins -> Manage Nodes,打开刚才新建的Node的配置界面。 选择“Tool Locations”,在Home字段中填入Windows slave机器上的git.exe的地址,比如 C:/Program Files/Git/cmd/git.exe。
注意:如果不配置Node的Git路径,会导致Jenkins job在Windows slave上运行时,仍然用的是Jenkins master上面的git,会报找不到路径的错。
###6. 为一类Node配置JAVA_HOME
在Jenkins上,打开Manage Jenkins -> Global Tools Configuration。
在JDK选项中,增加一个JDK,指向Windows slave上的JAVA_HOME。
如果多台Windows slave上的JDK路径都相同,在这里,只需要增加一个JDK就可以了。
在Jenkins pipeline中通过JAVA_HOME = "${tool 'java_windows'}" 来注入JAVA_HOME环境变量在Jenkins build的上下文中。
###7. 为一类Node配置MAVEN_HOME
在Jenkins上,打开Manage Jenkins -> Global Tools Configuration。
在Maven选项中,增加一个Maven,指向Windows slave上的MAVEN_HOME。
如果多台Windows slave上的MAVEN_HOME路径都相同,在这里,只需要增加一个JDK就可以了。
在Jenkins pipeline中通过MAVEN_HOME = "${tool 'maven_windows'}" 来注入MAVEN_HOME环境变量在Jenkins build的上下文中。
nklinsirui 认证博客专家 DevOps DevOps的实践者和布道者。现在某国际开源软件公司担任高级专家顾问。曾在某电子政务公司担任高级系统架构师。曾在某国际咨询公司担任技术架构交付经理。曾在某跨国银行中国软件开发中心担任高级专家顾问。DevOps Master, CSM, PMP。公众号:乒乓咨询