热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jdkjenkins配置ant_Jenkins系列之—04节点配置

一、节点配置1.进入【系统管理】-【节点管理】-【新建节点】,录入节点名,选择PermanentAgent,下一步录入节点详细配置信息&#

一、节点配置

1. 进入【系统管理】-【节点管理】-【新建节点】,录入节点名,选择Permanent Agent,下一步录入节点详细配置信息,如下:

1c2ca5ffbe3bd14a8932b52ea1f2cc82.png
  • Name:节点名称
  • Description:节点描述
  • # of executors:并发构建数(根据机器的性能定,单颗四核cpu建议不要超过5)
  • Remote FS root:节点的根目录(注意:如果目录不存在,会自动创建目录。你必须对该目录有读写权限,不然会报错:hudson.util.IOException2: Failed to copy xxxx)
  • Labels:标记(又叫做标签)用来对多节点分组,标记之间用空格分隔.
  • 用法:尽可能的使用这个节点/只允许运行绑定到这台机器的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

通过主节点的控制台连接节点

  该选项下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:Windowssystem32java.exe

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

  • Availability:

1) Keep this slave on-line as much as possible:尽可能保持节点在线【推荐】

2) Take this slave on-line according to a schedule:根据时间表在线(类似于Linux的定时任务)

  • Startup Schedule:类似于Linux定时任务的时间
  • Scheduled Uptime:超过任务时间后延迟多少分钟离线。如果此数值大于在线总时间(单位:分),就会一直保持在线【必须为数字】
  • Keep on-line while jobs are running:当有Job在构建时(到达离线时间了)继续保持在线

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

【注意】:默认情况下启动方式只显示第三种类型。在【系统管理】-【Configure Global Security】中,TCP port for JNLP agents ,禁用换成随机选取,则显示第二种

378af587397ab7eeab776652ba6a1726.png

二、节点连接

一、通过SSH连接node

此种方式连接时,master和slave必须是能够通过ssh进行连接的,必须有slave机器的账号才行,但不要求必须是root账号。

这种方式的前提是需要安装SSH Slaves plugin插件。
有如下两种方式Add Credentials:
1)通过Username with password方式
需要知道slave机器的用户名和密码,见下图:

371228659cfa28f13f3e6e6f22c0d8ac.png

2)通过SSH Username with private key方式

需要先在master机器上生成ssh key pair。生成的 public key放到slave机器 ~/.ssh/authorized_keys里面。

chmod 600 ~/.ssh/authorized_keys。
然后,添加连接slave的credential,见下图

4721de154f531b12bc3386a0064039b5.png

Username填写在master上生成key pair时使用的用户名。

Private key选择From the jenkins master ~/.ssh

bcbf916be1c24566af9b1819ac7afd5b.png


【扩展知识】 Jenkins的SSH Credentials Plugin插件,可以集中管理这些ssh 的key。安装完这个插件,可以在Jenkins上看到这样的页面

fa3e88959272d2c8ee5462cb567483a1.png


这个页面可以对credentials进行添加、删除、修改等操作。在这里设置的credentials在jenkins的其他需要credentials的地方,可以通过下拉菜单选择使用,比如添加slave时,可以直接在Credentials下拉菜单里选择对应的credential就行:

a52971f9b512a468953e101589d8cbde.png


还有git clone代码时:

6ec63dc47a9eec0465a99ab6f358880b.png


此时一定要把在master上生成的 public key添加到github账号的的Profile setting页面里的SSH Keys Settings中。

bcbf916be1c24566af9b1819ac7afd5b.png

2、通过JNLP连接node

将slave主动连接master。

ba2d3c21df9b3225283de9d8204dc9f3.png

有两种方式启动:

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

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

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

44e7b961f37aeb01684de5d7d527e460.png

2.Run from slave command line 如果你配置了权限那么后面还有一串看不懂的随机Key

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

slave.jar下载

三、节点使用

在job的配置页面,勾选Restrict where this project can be run,并且在Label Expression输入节点的标签名(一个标签有可能对应多台slave节点),也可以输入slave节点的名称

3207408497c944ba67d3fc1831ee1860.png



推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 第七课主要内容:多进程多线程FIFO,LIFO,优先队列线程局部变量进程与线程的选择线程池异步IO概念及twisted案例股票数据抓取 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
author-avatar
拉桑357_584
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有