[Jenkins创建windows子节点]

2023-11-15

正常部署Jenkins有两种方式,一个是直接war或者msi的包在windows系统上搭建,但是windows搭建一般是自己本机进行测试,如果有多台机器同时持续集成的时候,windows并不是一个合适的方式,之前我们已经搭建了一个Rocky Linux8的Jenkins服务器,但是我们需要执行的自动化程序只能在windows上执行,这个时候就需要Linux上的Jenkins服务可以控制Windows,所以引入了windows作为子节点,来创建独立的工作空间,完成windows相应的操作

一、Jenkins创建本地项目

在创建子节点完成相应的工作之前,我们先完成一个本地项目的构建,例如下图创建的Freestyle project-Test

 

 创建项目完成后会进入配置页面

 这里我们运行一个本地的项目,所以依次设置如下:
A. 设置项目描述(可选)
B. 源码管理选择,选择Git就要设置相应的仓库地址,用户名密码等远程从Git仓库拉取需要执行的代码
C. Build Step增加构建步骤,由于服务器是Linux系统,这里我们选择Execute shell
D. 输入一个shell命令,我们选择市面上最常见的python脚本执行,内容是hello world
E. 构建后操作暂时先不动

 

以上设置完成后点击应用并保存,然后构建当前新建的项目,第一次构建会失败,因为要创建工作目录

 由于Linux部署Jenkins默认工作目录为/var/lib/jenkins, 此路径可以在Dashboard > Manage Jenkins > Configure System当中

 所以刚刚的默认工作空间就存放在这个路径下/var/lib/jenkins/worksoace/Test,当前目录下内容为空,我们创建一个python脚本

$ sudo nano hello.py

print("hello world!")

创建完成后保存退出,如果没有安装nano,可以yum/dnf, 或者Ubuntu什么系统用apt-get来安装,完成之后先尝试下本地能否执行这个脚本,当前我的系统安装的是python3.9, 所以执行命令如下

python3.9 hello.py
hello world!

如果下面打印出hello world!则说明当前环境没问题,如果提示python未安装之类的,可以通过命令安装python,和上面安装nano一样的方式,这个时候刷新以下Jenkins页面,确认当前的工作空间有了新的需要执行的hello.py文件

 然后重新执行以下Build Now,确认构建是否成功,当前显示success之后就是执行成功了

 那么当前只是完成了Linux上面的运行,但是在windows上执行并不是这样,那么我们下面就需要创建一个windows节点

二、创建windows子节点

 我们回到Dashboard > Manage Jenkins页面,然后选择Manage Nodes and Clouds

 

 选择新建节点Windows11,选择固定节点,点击Create创建

 创建完成后会进入配置节点页面:
A. 节点名称保持不变 Windows11
B. 描述可选,根据个人喜好, win11 amd64
C. Number of executors,这个是Jenkins可以在此节点上构建的最大数目,这里我们设置2即可
D. 远程工作目录需要设置windows目录执行集成的工作目录,这里我们创建在D盘,D:\Jenkins-Test
E. 标签我这里输入win11
F.用法选择"Only build jobs with label expressions matching this node", 这个选项后面需要将任务绑定到这个节点,如果选择默认Use this node as much as possible,Jenkins只要这个节点空闲就会使用

G. 启动方式勾上Use WebSocket
H. 可用性保持默认 Keep this agent online as much as possible
I. 节点属性需要设置环境变量,否则执行的路径会找不到

 完成Nodes设置后点击保存,然后回到Nodes检查刚刚创建的Windows11节点,当前节点处于未连接状态

J. 将Windows11节点和Jenkins服务器联通, 点击Windows11的状态 

K. 先下载anent.jar和Jenkins-agent.jnlp然后拷贝到Jenkins-Test目录,下载方式一个直接点击蓝色的agent.jar, 另一个通过浏览器输入: http://192.168.220.100:8080/computer/Windows11/jenkins-agent.jnlp来下载
L. 可以将上面的命令复制下来并保存到一个批处理里面用于执行
M. 等准备工作完成后,确保windows的机器安装了JAVA JDK, 并设置好了环境变量,我这里windows和Jenkins服务器选择的都是jdk_11.0.16.1,可以通过windows cmd输入javac -version和java -version确认环境变量设置是否成功
N. JDK完成后直接运行之前创建的批处理文件,确认windows节点连接是否成功

 当出现Connected字样的时候说明链接已经成功了,这个时候去Jenkins前端检查是否状态刷新,

这里如果JDK版本太低运行会失败,最好保持同步的JDK版本,试过windows安装JDK8,Jenkins安装的是JDK11,java连接会失败

 

这个时候回到刚刚创建的Test项目,然后进入配置页面,将Test项目和刚刚创建的Node-Windows11绑定,标签表达式不会输入的点击问号查询

 然后Build Steps将之前的shell脚本删除,改成Execute Windows batch command, python hello.py

 这里需要注意windows下python默认程序设置了系统环境变量,否则执行会失败,需要执行的脚本最好也添加绝对路径

 运行成功后显示如下

 tips: 这里需要注意,java连接的批处理不能退出,要保证一直连接状态

三、自定义集成测试

之前两个章节Linux内置节点和windows子节点环境就算配置完成了,接下来可以通过任意替换工作空间当中的脚本完成其他自定义的集成测试

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Jenkins创建windows子节点] 的相关文章

随机推荐

  • SpringSecurity连接数据库的使用

    一 简介 Spring 是非常流行和成功的 Java 应用开发框架 Spring Security 正是 Spring 家族中的成员 Spring Security 基于 Spring 框架 提供了一套 Web 应用安全性的完整解决方案 正
  • 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式

    ASP NET MVC系列文章 01 浅谈Google Chrome浏览器 理论篇 02 浅谈Google Chrome浏览器 操作篇 上 03 浅谈Google Chrome浏览器 操作篇 下 04 浅谈ASP NET框架 05 浅谈AS
  • webpack-插件

    插件 Plugins 插件是 wepback 的支柱功能 webpack 自身也是构建于 你在 webpack 配置中用到的相同的插件系统之上 插件目的在于解决 loader 无法实现的其他事 剖析 webpack 插件是一个具有 appl
  • 操作系统实验:FCFS调度和SPF调度算法(C语言)

    实验内容 已知一组进程P1 P2 P3 及其到达时间和服务时间 参考下图 分别采用FCFS调度算法和SPF调度算法 求各个进程的完成时间 周转时间 带权周转时间 平均周转时间和平均带权周转时间 实验目的 熟悉FCFS调度算法的实现过程 熟练
  • CSS 图片偏移技术以及坐标问题

    CSS中通过图片偏移技术可以实现将众多小图标放入一个图片中 网页加载时只需要加载一个图片即可实现得到众多小图标的功能 这是前端设计时候对图片的一种优化方式 图片偏移技术只是一个属性而已 即 background position 100px
  • anaconda已经有sklearn,但是pycharm不能导入的解决方法

    问题 D software Anaconda3 Lib site packages文件夹里已经有sklearn这个文件夹 但是pycharm里import时无法识别到 原因 在pycharm里点击文件 gt 设置 gt 项目 gt Pyth
  • 仿微信底部菜单栏(ViewPager+ImagerView+TextView)

    前言 在市面上 大多数的APP都需要通过底部菜单栏来将程序的功能进行分类整理 通常都是分为3 5个大模块 从而正确有效地引导用户去使用我们的APP 实现底部菜单栏的方法也有很多种 1 仿微信底部菜单栏 ViewPager ImagerVie
  • CSS之继承

    1 什么是css继承 继承是css中非常重要的一个概念 当你为HTML中的某个元素赋予CSS样式时 这些样式不仅仅会影响当前元素 有的样式还会影响该元素的子元素 这些下层子元素继承上层祖先元素样式属性的特点 就称为css继承 2 css继承
  • 职业规划——我是如何在第一份工作中就能做到部门副经理的?

    这个标题一出来 想必应该就有相当一部分人在无限嘴嗨 what 这人装啥B 吹B也不带打草稿的 还以为是哪个大厂出来的 就一无名小公司 坐上去不停容易的嘛 还发出来博人眼球干啥 是的 您没看错 就是一名非计算机专业毕业的98年大专生 在一家有
  • PHP集成环境vscode配置debug

    PHP集成环境vscode配置debug 1 首先phpstudy配置下图 打开XDebug 监听端口9005 2 php ini配置 当前环境对应版本的php ini文件 用记事本打开 确认最后的XDebug如下 Xdebug zend
  • 增加数据盘 小于2T XFS文件系统

    parted dev sdb mklabel msdos mkpart p xfs 0 100 mkfs xfs dev sdb1 blkid Edit etc fstab and add UUID
  • 【C语言】快速排序函数qsort()

    快速排序函数 函数原型 各种数据类型的升序排序函数 1 整型 2 double型 3 字符排序 4 字符串排序 1 根据字符串首字母排序 2 根据字符串长度排序 3 按字典排序字符串 5 结构体 1 一级排序 2 二级排序 具体样例 1 整
  • rust开发工具

    文章目录 介绍 安装Rust 检测 安装vscode 安装Visual C 远程开发 在WSL上远程开发 SSL 远程开发 插件 技巧 idea或clion rust插件 介绍 支持Rust开发最好的开发工具有VS CODE SUBLIME
  • 用matlab画散点图,并指定点与点之间的连线

    用matlab画散点图不难 用scatter函数就行了 主要难在要指定点与点之间连线 关键在于使用gplot函数 语法 gplot A Coordinates gplot A Coordinates LineSpec X Y gplot A
  • GTK3.20安装win10主题和图标

    书接上回win10专业版vs2017编译最新版GTK的两种方法 编译完成后 生成的文件位于C gtk build gtk x64 release 把C gtk build gtk x64 release bin放到环境变量 在vs工程里引用
  • 软件定义网络 (SDN)技术原理详解

    一 SDN相关概念 1 大二层网络 互联网时代 用户的访问称之为南北向流量 而数据中心之间的数据传递成为东西向流量 很多情况下 需要不同的数据中心之间进行数据访问 数据同步 而去同步这些流量要求对这个安全性 以及稳定性有一定的挑战 而让这些
  • vue 纯前端导出 excel

    1 安装2个依赖 npm install file saver xlsx S 加载script 需要 npm install script loader D 2 在 src 目录下新建 vendor文件夹 用于存放 Blob js 和 Ex
  • 浅谈list的remove方法

    List list new ArrayList lt gt list add 11 list add 12 list add 13 list add 14 list add 15 list add 16 for Integer i 0 i
  • MATLAB 学习笔记(4)MATLAB 数组

    目录 MATLAB数组 MATLAB中的特殊阵列 MATLAB 魔方矩阵 MATLAB 多维数组 详细例子 MATLAB数组函数 详细示例 MATLAB数组排序 MATLAB单元阵列 注意 详细例子 MATLAB在单元格上阵列访问数据 MA
  • [Jenkins创建windows子节点]

    正常部署Jenkins有两种方式 一个是直接war或者msi的包在windows系统上搭建 但是windows搭建一般是自己本机进行测试 如果有多台机器同时持续集成的时候 windows并不是一个合适的方式 之前我们已经搭建了一个Rocky