zoukankan      html  css  js  c++  java
  • Jenkins基础篇 系列之-—04 节点配置

    一、节点配置

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

     

     二、节点连接

    一、通过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节点的名称

     

  • 相关阅读:
    csrf(跨站请求伪造)
    CBV加装饰器
    Django的中间件
    form组件简介
    统计日期天数及拓展使用
    回文数的定义以及拓展使用
    排序——冒泡,快速,选择,插入
    No resources found. Error from server (NotAcceptable): unknown (get pods)
    编程题训练5
    K8s集群内热改代码
  • 原文地址:https://www.cnblogs.com/liuyitan/p/9322832.html
Copyright © 2011-2022 走看看