设为首页 收藏本站
查看: 1204|回复: 0

[经验分享] Jenkins进阶系列之——11详解Jenkins节点配置

[复制链接]

尚未签到

发表于 2018-9-4 09:55:13 | 显示全部楼层 |阅读模式
  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种方式配置。详细如下:

  •   【推荐】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]
  •   【推荐】Launch slave agents via Java Web Start   通过Java Web Start连接节点 (适用于所有支持Java程序的系统)
      Tunnel connection through:[可选]在端口转发这种情况下使用
      JVM options:[可选]JVM可选参数
      这种方法的缺点:如果该节点宕机了,主节点无法自动重启它。
  •   Launch slave via execution of command on the Master  通过主节点的控制台连接节点
      在写内容前吐槽一下Jenkins的帮助,说的云里雾里的。应该去看该选项下Launch command的帮助。
      Jenkins的开发者考虑到某些企业可能有N++ 个节点(N>=你猜!)。如果在界面配置,那么升级版本之类的操作会很麻烦。所以允许你使用shell脚本去配置管理节点(貌似很方便的样子)。具体的脚本需要你自己写。
      Launch command:Unix运行脚本的命令,如:sh aaa.sh
  •   【不建议使用】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 December
  
                   H 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>
  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 Master和Let 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  即可启动。
  好了,Jenkins节点的配置展示告一段落了。如有疑问,请留言!
  转:http://www.cnblogs.com/zz0412/p/jenkins_jj_12.html 点击打开链接



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-562324-1-1.html 上篇帖子: Linux 搭建 Jenkins 下篇帖子: Jenkins进阶系列之——12修改Jenkins权限控制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表