热门标签 | 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



推荐阅读
  • MongoDB集群配置:副本集与分片详解
    本文详细介绍了如何在MongoDB中配置副本集(Replica Sets)和分片(Sharding),并提供了具体的步骤和命令,帮助读者理解并实现高可用性和水平扩展的MongoDB集群。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 深入解析JVM垃圾收集器
    本文基于《深入理解Java虚拟机:JVM高级特性与最佳实践》第二版,详细探讨了JVM中不同类型的垃圾收集器及其工作原理。通过介绍各种垃圾收集器的特性和应用场景,帮助读者更好地理解和优化JVM内存管理。 ... [详细]
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 将Web服务部署到Tomcat
    本文介绍了如何在JDeveloper 12c中创建一个Java项目,并将其打包为Web服务,然后部署到Tomcat服务器。内容涵盖从项目创建、编写Web服务代码、配置相关XML文件到最终的本地部署和验证。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
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社区 版权所有