一、节点配置

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

  • 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:\Windows\system32\java.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 ,禁用换成随机选取,则显示第二种

二、节点连接

一、通过SSH连接node

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

这种方式的前提是需要安装SSH Slaves plugin插件。

有如下两种方式Add Credentials: 
1)通过Username with password方式 
需要知道slave机器的用户名和密码,见下图:

2)通过SSH Username with private key方式

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

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

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

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

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

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


还有git clone代码时: 

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

2、通过JNLP连接node

将slave主动连接master。

有两种方式启动:

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  如果你配置了权限那么后面还有一串看不懂的随机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节点的名称

Jenkins系列之-—05 节点配置的更多相关文章

  1. Jenkins 2.x新建节点配置(Windows)

    2.0版本以上默认加入了权限插件,所以在进入主界面时是需要登录的. 一.主界面->[系统管理]->[管理节点]->[新建节点],进行节点的添加: 二.输入节点名称,已经选择[Perm ...

  2. jenkins系列之添加全局配置(一)

    第一步: 第二步:执行以下命令: 第三步:找到/c/Users/Administrator/.ssh 目录,里面有两个文件:id_rsa和id_rsa.pub 第四步:配置ssh[这里是id_rsa. ...

  3. Jenkins进阶系列之——12详解Jenkins节点配置

    2014-03-02:修正对于lable标签的理解.(1.532.1版本已经给出了官方解释) 2013-12-22:添加JNLP端口修改,修改了一些错误. Jenkins有个很强大的功能:分布式构建( ...

  4. Jenkins持续集成企业实战系列之Jenkins插件下载及邮件配置-----05

    注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.    最初接触Jenkins也是由于公司需求,根据公司需求Java代码项目升级的.(公司是 ...

  5. Mybatis 系列6-结合源码解析节点配置:objectFactory、databaseIdProvider、plugins、mappers

    [Mybatis 系列10-结合源码解析mybatis 执行流程] [Mybatis 系列9-强大的动态sql 语句] [Mybatis 系列8-结合源码解析select.resultMap的用法] ...

  6. Jenkins节点配置页面,启动方法没有"Launch agent via Java Web Start"解决方法?

    Jenkins的配置从节点中默认没有Launch agent via JavaWeb Start,解决办法: 步骤: 1:打开"系统管理"——"Configure Glo ...

  7. Jenkins系列-Jenkins用户权限和角色配置

    由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,这边将使用Role Strategy Plugin,介绍页面:https://wiki.jenki ...

  8. Jenkins 节点配置中没有Launch agent via Java Web Start 选项

    Jenkins节点配置的启动方式中没有Launch agent via Java Web Start,如下图 怎样能设置出来呢? 1:打开"系统管理"——"Configu ...

  9. Jenkins系列-Jenkins初始化配置

    初始化 访问,如:127.0.0.1:8088/Jenkins 第一次要求输入密码,初始密码在文件中查看. 执行以下命令查看 $ cat ${USER_HOME}\.jenkins\secrets\i ...

随机推荐

  1. python获取指定文件夹下的文件路径

    #!/usr/bin/python# -*- coding: UTF-8 -*-# @date: 2018/1/6 23:08# @name: tmp2# @author:vickey-wu impo ...

  2. “xxxx”表 - 无法修改表。 不能将值 NULL 插入列 'xxxx'

    问题 向已有表增加字段 执行下面sql,sql执行增加两个字段分别: articleTitle 正标题 [nvarchar](200) articleSubTitle 副标题 [nvarchar](2 ...

  3. sqlserver还原3101

    1.出现错误"3101" 2.解决办法:删除数据库之后还原(有风险)或者获得数据库的独占访问权(用sql语句) 参考:https://www.2cto.com/database/2 ...

  4. 使用iframe引入公共模块

    新建一个公共文件head.html <!DOCTYPE html><html lang="en"><head> <meta charset ...

  5. luogu P1364 医院设置

    题目描述 设有一棵二叉树,如图: 其中,圈中的数字表示结点中居民的人口.圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1.如上 ...

  6. MySQL存储过程实践

    对employees数据库建立存储过程 创建不含有输入输出变量的存储过程 DELIMITER // -- 设定语句结束分隔符 DROP PROCEDURE IF EXISTS GetEmployees ...

  7. 电源模块PCB设计

    电源模块的PCB设计 电源电路是一个电子产品的重要组成部分,电源电路设计的好坏,直接牵连产品性能的好坏.我们电子产品的电源电路主要有线性电源和高频开关电源.从理论上讲,线性电源是用户需要多少电流,输入 ...

  8. js正则替换十六进制

    var re=/\x62/;//没有0,也没有分号。alert(re.test("blue"));  //output "true" 需要使用< 如需显示 ...

  9. ZOJ 2588 求割边问题

    题目链接:http://vjudge.net/problem/viewProblem.action?id=14877 题目大意: 要尽可能多的烧毁桥,另外还要保证图的连通性,问哪些桥是绝对不能烧毁的 ...

  10. [转]GitHub 优秀的 Android 开源项目

    GitHub 优秀的 Android 开源项目 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageV ...