2014-03-02:修正对于lable标签的理解。(1.532.1版本已经给出了官方解释)

2013-12-22:添加JNLP端口修改,修改了一些错误。

Jenkins有个很强大的功能:分布式构建(在Jenkins的配置中叫做节点),分布式构建能够让同一套代码在不同的环境(如:Windows和Linux系统)中编译、测试等。这么做的好处一大堆,自己去想。而且Jenkins构建的代码和产物最后自动拷贝到主节点。

注意:如果节点主机上不存在JDK,Jenkins会去自动下载,但Oracle对程序自动下载做了限制,会导致下载失败,然后一直循环这个问题。

建议:所有Unix或者Windows机器的环境路径统一(如:JDK、Ant、Maven),好处是便于管理、不容易出现奇葩问题。

Jenkins版本:1.532(不同版本的配置可能不同)

进入节点配置界面:

系统管理→管理节点→新建节点(左上角)

节点名称:建议使用字母、数字或字母和数字的组合。最好见名知意。不建议使用标点符号和中文(中文命名没有问题,但Job中无法引用)

Dumb Slave:新建一个节点

复制现有节点:从已存在的节点中复制一份配置(如果存在节点才会显示)

点击ok进入下一步配置

Name:节点名称

Description:节点描述,支持中文

# of executors:最大同时构建数量(根据机器的性能定,单颗四核cpu建议不要超过5)【必须为数字】

Remote FS root:节点的根目录(注意:如果目录不存在,会自动创建目录。你必须对该目录有读写权限,不然会报错:hudson.util.IOException2: Failed to copy xxxx)

Labels:标记(又叫做标签)用来对多节点分组,标记之间用空格分隔.例如'refression java6'将会把一个节点标记上'regression'和'java6'.

  举例来说,如果你有多个Windows系统的构建节点并且你的Job也需要在Windows系统上运行,那么你可以配置所有的Windows系统节点都标记为'windows', 然后把Job也标记为'windows'.这样的话你的Job就不会运行在除了Windows节点以外的其它节点之上了.

用法:尽可能的使用这个节点/只允许运行绑定到这台机器的Job(根据你的需求,二选一)

Launch method:运行方式有四个选项。建议选择第1、2种方式配置。详细如下:

  1. 【推荐】Launch slave agents on Unix machines via SSH   在Unix(包括Linux)机器上通过SSH通道连接节点 (适用于Unix和Linux)

      Host:节点主机的ip地址

      Credentials:凭据(如果为空或者不可选择,请在系统管理→Manage Credentials中配置。Manage Credentials的配置非常简单,这里就不在描述了。Manage Credentials配置完成后,需刷新节点配置页面才会显示。)

      Port:端口默认22

      JavaPath:[可选]JDK路径,默认和master节点相同。路径必须指定到Java程序,如:/path/bin/java

      JVM Options:[可选]JVM可选参数

      Prefix Start Slave Command:[可选]不知道干什么用的参数

      Suffix Start Slave Command:[可选]不知道干什么用的参数

       测试可以使用Unix命令,会自动拼接在[SSH] Starting slave process:[Prefix Start Slave Command] cd '/path' && /path/bin/java -jar slave.jar [Suffix Start Slave Command]

  2. 【推荐】Launch slave agents via Java Web Start   通过Java Web Start连接节点 (适用于所有支持Java程序的系统)

      Tunnel connection through:[可选]在端口转发这种情况下使用

      JVM options:[可选]JVM可选参数

      这种方法的缺点:如果该节点宕机了,主节点无法自动重启它。

      

  3. Launch slave via execution of command on the Master  通过主节点的控制台连接节点

       在写内容前吐槽一下Jenkins的帮助,说的云里雾里的。应该去看该选项下Launch command的帮助。

       Jenkins的开发者考虑到某些企业可能有N++ 个节点(N>=你猜!)。如果在界面配置,那么升级版本之类的操作会很麻烦。所以允许你使用shell脚本去配置管理节点(貌似很方便的样子)。具体的脚本需要你自己写。

      Launch command:Unix运行脚本的命令,如:sh aaa.sh

  4. 【不建议使用】Let Jenkins control this Windows slave as a Windows service   让Jenkins节点添加到Windows服务中

       这个选项比Launch slave agents via Java Web Start添加为服务更加稳定(帮助文档是这么说的)。采用这种运行方式,那么这个系统不能登录任何用户。这种配置方式是非常的麻烦和折腾。具体请查看 点我去看帮助

      Administrator user name:域\管理员账号

      Password:密码

      Host:节点主机IP或者域名

      Run service as:

        Use Local System User:使用本地系统用户

        Log on using a different account:使用不同的用户登录

          User name:账号

          Password:密码

        Use Administrator account given above:使用上面的用户登录

      Path to java executable:[可选]JDK路径。必须指定到Java程序,如:C:\Windows\system32\java.exe

      JVM options:[可选]JVM可选参数

    

Availability:

  • Keep this slave on-line as much as possible:尽可能保持节点在线【推荐】
  • Take this slave on-line according to a schedule:根据时间表在线(类似于Linux的定时任务)

Startup Schedule:类似于Linux定时任务的时间,如下:

                   # every fifteen minutes (perhaps at :07, :22, :37, :52)H/15 * * * *# every ten minutes in the first half of every hour (three times, perhaps at :04, :14, :24)H(0-29)/10 * * * *# once every two hours every weekday (perhaps at 10:38 AM, 12:38 PM, 2:38 PM, 4:38 PM)H 9-16/2 * * 1-5# once a day on the 1st and 15th of every month except DecemberH H 1,15 1-11 *                   如果使用 H Jenkins会自动提前一段时间连接节点,避免出现同一时间高并发的问题

Scheduled Uptime:超过任务时间后延迟多少分钟离线。如果此数值大于在线总时间(单位:分),就会一直保持在线【必须为数字】

Keep on-line while jobs are running:当有Job在构建时(到达离线时间了)继续保持在线

  • Take this slave on-line when in demand and off-line when idle:让Jenkins根据需求自动连接或者离线

In demand delay:告诉Jenkins如果有Job需要在此节点构建,需要在任务队列等待多长时间才会进入任务状态进行构建【必须为数字】

Idle delay:告诉Jenkins多少分钟内如果没有Job需要构建就离线【必须为数字】

Node Properties:

  • Environment variables:配置环境变量(可以在脚本中引用,好方便啊\(^o^)/~)
  • Tool Locations:工具的目录【推荐】。说明:可以替换系统设置的各种工具目录。如:JDK目录、Ant目录、Maven目录等。好处就是在不更改Job配置的情况下,不同环境(如:Windows和Linux) Job配置通用。好方便啊\(^o^)/~

到此,节点的配置工作完成了,点击Save保存。进入下一步节点的连接:

只介绍Launch slave agents via Java Web Start第二种连接方式,Launch slave agents on Unix machines via SSH点击保存后会自动连接。因为Launch slave via execution of command on the MasterLet Jenkins control this Windows slave as a Windows service选项没有配置测试过,所以大家自行折腾吧。

如上图所示,有两种方式可以启动节点(都是JNLP方式。JNLP连接需要端口,默认连接端口是随机的,端口更改 系统设置→Configure Global Security→JNLP节点代理的TCP端口)

你有两种方式启动:

1.Launch agent from browser on slave  下载文件slave-agent.jnlp文件,双击打开。

一般用在Windows系统上,需要javaws.exe(在Java的bin目录中可以找到)程序才能打开。如果提示错误,请卸载JDK后重新安装。成功启动如下图所示:

点击左上角的File选择Install as a service就可以添加为Windows的服务了(默认开机自动启动)。

2.Run from slave command line   javaws  http://xxxx/slave-agent.jnlp  如果你配置了权限那么后面还有一串看不懂的随机Key

下载slave.jar到本地,然后进入存放slave.jar的目录,复制粘贴并运行 java -jar slave.jar -jnlpUrl http://xxxxx  即可启动。

转载于:https://www.cnblogs.com/fosilzhou/articles/3871359.html

第十四章:详解Jenkins节点配置相关推荐

  1. 系统学习NLP(二十四)--详解Transformer (Attention Is All You Need)

    转自:https://zhuanlan.zhihu.com/p/48508221 推荐:http://jalammar.github.io/illustrated-transformer/ 前言 注意 ...

  2. 第三十四章 数论——高斯消元解线性方程组

    第三十四章 数论--高斯消元解线性方程组 一.高斯消元 1.线性方程组 2.高斯消元步骤 (1)数学知识铺垫 增广矩阵和阶梯矩阵 初等变换 (2)高斯消元步骤 二.代码模板 1.问题: 2.代码 一. ...

  3. 微信小程序(第二十四章)- 数据交互前置

    微信小程序(第二十四章)- 数据交互前置 讲解微信小程序前置的原因 参考文档 理解微信小程序 小程序简介 作用 提问 针对提问--uni-app介绍 小程序和普通网页开发的区别 小程序代码构成 文件个 ...

  4. 【正点原子Linux连载】第六十四章 Linux 多点电容触摸屏实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  5. 第十一、十二、十三、十四章 网络配置管理、归档和远程复制同步文件、软件包管理、创建访问linux文件系统

    第十一章 网络配置管理 网络地址获取方式: 1)DHCP自动获取 2)手动配置 1.网卡配置文件: /etc/sysconfig/network-scripts/ [root@server0 Desk ...

  6. 十二、详解计算网络中的流量控制和差错控制、HDLC

    十二.详解计算网络中的流量控制和差错控制 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动 ...

  7. 《网络安全工程师笔记》 第十四章:渗透简单测试流程

    注:本笔记来自温晓飞老师的网络安全课程 第十四章:渗透简单测试流程 第一章:虚拟化架构与系统部署 第二章:IP地址详解 第三章:进制转换 第四章:DOS基本命令与批处理 第五章:用户与组管理 第六章: ...

  8. 十大排序详解(java实现)

    十大排序详解(java实现) 一.十大排序算法概述 1.定义 2.分类 3.比较 4.相关概念 二.各算法原理及实现 1.冒泡排序 2.简单选择排序(Selection Sort) 3.直接插入排序( ...

  9. 鸟哥的Linux私房菜(服务器)- 第十四章、账号控管: NIS 服务器

    第十四章.账号控管: NIS 服务器 最近更新日期:2011/07/28 有没有想过,如果我有十部 Linux 主机,这十部主机仅负责不同的功能,事实上,所有的主机账号与对应的密码都相同! 那么我是将 ...

最新文章

  1. CSS 布局:40个教程、技巧、例子和最佳实践
  2. vuex的计算属性_vuex 是什么? 有哪几种属性?
  3. mysql压缩包修改密码_mysql 解压之后一堆文件,第一次安装 与 修改密码
  4. Visual Studio Code 1.49 发布
  5. 数字公式识别的学习笔记(legacy)
  6. 7月20日专家在线访谈“员工上网管理是否可行”
  7. 基于python的电影推荐系统论文_一种电影推荐系统的设计与实现
  8. 怎么清楚计算机硬盘搜索记录,如何去除电脑硬盘删除痕迹
  9. Py之lime:lime库的简介、安装、使用方法之详细攻略
  10. POST /product/:id 获取单个商品
  11. 慢慢来,等待也是一种美好
  12. ExpandableListview的简单使用
  13. 惯性室内导航入门到精通(3)-计步算法
  14. C语言-学生成绩链表处理
  15. IP地址192.168.48.10,掩码为255 255.255.128,其所在的子网为(),广播地址为),有效的主机IP地址范围从()到().
  16. HTTP返回代码 201 304 404 500等代表的含义
  17. 腾讯市值1个月蒸发1700亿美元;微软发布Windows 11 首个Beta版本; 恶意程序开发者转向新兴编程语言 | 架构视点...
  18. WINDOWS BAT 批处理入门
  19. idea批量修改变量快捷键mac_IDEA 快捷使用指南
  20. 关于惠普无线网卡驱动报警无法连接网络解决办法

热门文章

  1. Android无法运行AVD,android – 无法运行AVD(模拟器)
  2. java 二维数组位置_请完成下列Java程序:查找一个矩阵中的鞍点,对于一个二维数组中的鞍点,该点位置上的元素在该行上...
  3. 【若依(ruoyi)】打开新的选项卡
  4. c语言在win8系统不兼容,Win8系统中存在不兼容软件怎么办?
  5. ttf能改成gfont吗_一楼业主把半地下室窗户改成门,出来就是下沉式小花园,摊上事了...
  6. c# 拷贝结构体_C#学习之Partial、结构体、枚举
  7. 优先级调度算法实现_一篇讲透嵌入式操作系统任务调度
  8. android应用资源可以分为两大类,Android 应用资源(一)
  9. 深入理解javascript原型和闭包(3)——prototype原型
  10. python如何输入和输出_输入和输出