Jenkins之节点的使用

这篇具有很好参考价值的文章主要介绍了Jenkins之节点的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

节点概念

Jenkins服务运行在一台服务器上,服务器的资源是有限的,Jenkins服务的构建速度受服务器资源影响,也是有限的。当我们需要构建的项目比较多或规模比较大的时候,可能会超出Jenkins的构建能力,超出其构建能力,导致构建任务堆积,严重的话会让服务崩溃。
单个Jenkins服务满足不了我们构建需求,但是多个Jenkins服务管理起来比较麻烦。我们可以以“分布式”的方法来维护构建数据,即Jenkins的节点概念。
节点,可以理解为是Jenkins的员工,我们部署的Jenkins服务是主节点,相当于领导。领导表示TA快忙死了,然后大老板知道后,就招了几个人(买服务器)作为领导的员工(节点),领导接到任务(构建任务)之后,就按照相关规则将任务分给员工,员工接收成功后就开始苦命的干活(执行命令),干活的时候将执行结果反馈给领导,领导接收反馈后更新构建结果(任务成功或失败等)。

总的来说,节点就是另一个服务器,这个服务器接收Jenkins主节点的命令并执行。我们一般叫Jenkins服务为主节点,主节点将构建任务分配到不同的节点。
Jenkins之节点的使用

节点配置

节点有多种配置方式,常用的是2种:agent代理和SSH登录
本文准备了2台linux服务器进行讲解。其中一台部署了Jenkins服务,另一台配置为节点。
节点的配置都是在【Manage Jenkins】下的【Nodes and Clouds】进行配置的
Jenkins之节点的使用
Jenkins之节点的使用
当前章节我们使用的可以触发构建任务的项目如下:

当前项目会下载源码:
Jenkins之节点的使用
当前项目会执行ip addr命令
Jenkins之节点的使用

接下来,我们还要再子节点上配置项目可运行的环境:配置java环境和安装git工具
根据项目内容,我们需要将子节点服务器的环境配置成可以运行项目。首先,子节点需要接收来自jenkins的java命令(jenkins是使用Java语言写的),所以需要配置java环境;然后我们的项目会下载gitee仓库代码,需要支持git命令,所以需要安装git工具。即子节点服务器需要配置java环境、安装git工具。

agent代理方式

agent代理方式是Jenkins默认就有的节点配置方式,该方式是主节点提供agent控制器,节点运行agent控制器来与主节点进行连接,主节点就可以通过该连接指挥agent节点干活。

步骤如下:

  • 1.在jenkins服务上配置agent子节点并保存
  • 2.子节点服务器中,下载指定的agent.jar,并执行指定的java -jar命令去连接主节点
  • 3.主节点执行构建任务

Jenkins之节点的使用
agent代理方式,是在子节点配置的时候,启动方式Launch method选择Launch agent by connecting it to the controller。这种方式是jenkins服务根据子节点的配置,生成一个agent.jar,子节点服务器下载agent.jar,并通过java命令运行agent.jar主动与jenkins主节点连接

配置并保存节点后,我们看到该节点是未连接的状态:
Jenkins之节点的使用
点击节点名称(Name),进入节点状态(Status)页面,找到需要在子节点对应的服务器上执行的命令
Jenkins之节点的使用
由于子节点服务器是Linux系统,所以执行“Run from agent command line: (Unix)”下的命令,我们可以看到,第2条命令是java命令,所以我们需要在子节点服务器中配置java环境,即安装jdk,linux安装jdk的步骤参考这篇博客(Jenkins入门),配置好java环境后,执行相关命令,执行情况如下:
Jenkins之节点的使用
子节点服务器执行了指定的命令后,稍等几分钟,在jenkins服务的子节点列表页面,可以看到子节点连接状态为已连接
Jenkins之节点的使用
连接成功后,我们去配置项目,触发项目的构建:
Jenkins之节点的使用
项目构建成功后,我们在主节点服务器只能看到一些构建日志
Jenkins之节点的使用
实际工作目录workspace是在子节点服务器的指定路径(Remote root directory字段的绝对路径)中
Jenkins之节点的使用

Jenkins之节点的使用

SSH连接方式

SSH连接方式,是主节点通过配置的ssh信息(凭证等),通过ssh登录的方式登录到子节点,是主节点主动连接子节点。
Jenkins节点启动方式默认支持agent代理方式的,如果想要支持SSH,则需要安装SSH Build Agents插件
Jenkins之节点的使用
需要创建一个子节点服务器的登录凭证,路径:【Manage Jenkins】–>【Manage Credentials】,Domain选择“global”,点击“Add Credentials”添加登录凭证
Jenkins之节点的使用

入门示例

凭证的种类有多种,我们先用Username with password的方式
Jenkins之节点的使用
Jenkins之节点的使用
凭证添加完成后,我们去新增节点,路径:【Manage Jenkins】–>【Nodes and Clouds】,点击“New Node”新增节点,然后配置节点
Jenkins之节点的使用

相关字段说明:

  • Remote root directory:远程根目录(绝对路径),相当于Jenkins根目录,存放项目的workspace(有代码下载的话会下载到这里)和ssh连接工具(比如remoting.jar)
  • Launch method:启动方式,如果是要使用ssh登录方式,则选择Launch agents via SSH(需要安装SSH Build Agents插件)
  • Host:子节点对应服务器的公网IP地址
  • Credentials:凭证,即SSH登录凭证(登录信息),选择我们前面步骤创建的凭证
  • Host Key Verification Strategy:主机密钥验证策略,如果是SSH用户密码的凭证进行连接的话,选择“Non verifying Verification Strategy”策略,如果是密钥的方式,则选择"Known hosts file Verification Strategy“策略
  • JavaPath:由于jenkins是用java语言写的,相关的操作也是java命令,所以子节点服务器上必须配置java环境,如果是Linux系统,可以使用 which java 获取到java环境路径
  • Remoting Work directory:远程工作目录(绝对路劲),即jenkins子节点的工作路径,存放一些构建日志数据(比如remoting)。如果未设置(为空)的话,则默认使用Remote root directory字段的路径

节点配置好后,点击Save按钮进行保存,主节点会自动去连接子节点,我们可以通过子节点的【Log】去查看ssh连接情况:
Jenkins之节点的使用
我们也可以在节点列表中查看连接情况:
Jenkins之节点的使用
连接过程中,也会在远程根目录(Remote root directory)下生成remoting.jar
Jenkins之节点的使用
ssh连接成功后,接下来我们去触发项目构建:
Jenkins之节点的使用
构建结束后,我们从此次构建的Console Output中查看构建日志
Jenkins之节点的使用

ssh凭证设置

ssh连接方式设置步骤中,我们需要先去创建ssh登录凭证,从截图中可以看到,ssh登录凭证的设置有多种方式,具体的使用如下:

  • Username with password
  • SSH Username with private key
  • Secret file
  • Secret text

常用的是Username with passwordSSH Username with private key

SSH Username with private key
步骤1:在Jenkins主节点上生成密钥,命令:ssh-keygen -t rsa

Jenkins之节点的使用

步骤2:进入jenkins目录,获取私钥和公钥

Jenkins之节点的使用

步骤3:将私钥配置到凭证credentials中

Jenkins之节点的使用
新建credentials,配置说明如下:

  • Kind:这里我们介绍SSH Username with private key的用法,就选择这个
  • Scope:范围,即该凭证在哪里可以使用
  • ID:凭证ID,不重复就行
  • Description:凭证描述,在节点配置时方便区分凭证
  • Username:ssh登录子节点时的用户
  • Private Key:SSH Username with private key时,必须勾选,并将主节点服务器生成的id_rsa文件内容复制到key中
步骤4:将主节点服务器生成的公钥id_rsa.pub的文本内容,复制到子节点服务器的/{用户名}/.ssh目录下的authorized_keys文件中。如果没有.ssh目录,可以自己创建:
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys

chmod -R 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

创建后将id_rsa.pub文本内容复制到authorized_keys文件中(linux系统可以使用vi命令)
Jenkins之节点的使用

步骤5:配置子节点

子节点的配置与【SSH连接方式】的Username with password示例基本相同,只有以下几个字段配置不同:

  • Credentials:选择步骤3:将私钥配置到凭证credentials中步骤中创建的凭证
  • Host Key Verification Strategy:如果主节点服务器有通过ssh连接子节点服务器成功过,则可以选择Known hosts file Verification Strategy;否则,选择Manually provided key Verification Strategy
  • Remote root directory设置成"/root/test/jenkins_test/ssh_key",Remoting Work directory为空

Jenkins之节点的使用连接成功后,就可以触发构建任务了。

其他配置

Labels

Labels是主节点通过项目的Label进行匹配,将构建任务发给Labels匹配的子节点。
项目中的配置:
Jenkins之节点的使用
子节点没有配置Labels,主节点配置了Labels为"wen",所以项目在主节点运行:
Jenkins之节点的使用
Jenkins之节点的使用

Node Properties

Node Properties,节点属性,设置节点环境变量(Environment variables)和工具设置(Tool Locations)

Environment variables

Environment variables,即节点环境变量,从使用描述中我们可以了解到:

  1. 在节点中设置的节点环境变量,只能在当前节点中的构建任务中使用,其他节点都不能使用
  2. 如果全局变量也存在与节点环境变量相同的变量名,则使用当前节点的变量;
  3. 使用方式:

linux系统:$NAME${NAME}
windows系统:%NAME%

  1. 如果变量值为空或为纯空格,则相当于该节点变量无效声明,即不可用
    Jenkins之节点的使用
    Jenkins之节点的使用
    Jenkins之节点的使用
    Jenkins之节点的使用
Tool Locations

有时候我们的节点对应服务器,同一个工具安装了多个版本,比如python2和python3,我们需要指定工具使用的版本(其安装目录)。
Jenkins之节点的使用
从描述中可以了解到:文章来源地址https://www.toymoban.com/news/detail-499642.html

  1. 在这里的工具配置,会覆盖全局的工具配置(Dashboard–>Manage Jenkins–>Tools)
  2. 如果没有配置的话,就使用全局的工具配置,全局工具配置可以自动安装指定工具

到了这里,关于Jenkins之节点的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jenkins基础篇--添加节点

    Jenkins 拥有分布式构建(在 Jenkins 的配置中叫做节点),分布式构建能够让同一套代码在不同的环境(如:Windows 和 Linux 系统)中编译、测试等。 Jenkins 运行的主机在逻辑上是 master 节点,下图是主节点和从节点的关系。 1、安装SSH Agent 插件,插件安装可参考:Jenkins基础篇--推荐插

    2024年02月02日
    浏览(60)
  • Jenkins-创建节点并连接

    Jenkins是构建一个Job通过一系列配置来实现一键操作或构建定时任务,而这些任务要远程到哪台机器上运行,就需要配置节点 前提:节点机器上已经安装配置了JDK环境 1、登录jenkins控制台,点击【DashBoard】-【Manage Jenkins】,找到【Manage Nodes and Clouds】 2、 点击【Manage Nodes and

    2024年02月03日
    浏览(37)
  • VPS使用ProxySU搭建节点服务器

    本文所有教程及源码、软件仅为技术研究。不涉及计算机信息系统功能的删除、修改、增加、干扰,更不会影响计算机信息系统的正常运行。不得将代码用于非法用途,如侵立删! VPS使用ProxySU搭建节点服务器 环境 contos8 win10 64位 ProxySU 4.1.7 服务器及域名相关 vps服务器和域名

    2024年02月17日
    浏览(64)
  • 纯命令行在Ubuntu中安装qemu的ubuntu虚拟机,成功备忘

     信息总体还算完整,有个别软件更新了名字,所以在这备忘一下 ________________________________________________________________   __________________________________________________________________ 也可以这样:   ________________________________________________________________ 有相关输出,既可以认为本机支持

    2024年01月24日
    浏览(35)
  • jenkins windows节点中文乱码问题解决

    本文主要讲解一下在jenkins中新增windows节点后的乱码问题逐步解决方法 第一步 刚开始创建完slave节点后,使用该节点运行项目后的在jenkins控制台输出的日志显示如下:(中文显示正常) 但是通过api集成到平台后中文会变成乱码: 这里我就思考是因为jenkins的编码问题导致,所

    2024年02月13日
    浏览(39)
  • Jenkins 主从节点配置教程(windows10)

    先说:原本想通过SSH来进行两个主机之间的master-slave节点配置,在网上查了大量的教程实践,最终没有成功(过段时间,对Jenkins比较熟悉再来配置吧)。于是换了种方法,如下。 主机A 10.103.87.210 作为Jenkins服务器master主节点; 主机B 10.103.87.101 作为slave 从节点,无需安装Jen

    2024年02月12日
    浏览(49)
  • jenkins主从节点安装及pipeline构建

    通过Jenkins主节点配置的pipeline下发给从节点执行,从而兼容容器化执行 docker-compose.yml 直接docker-compose up -d启动即可 默认装完是2.346.3版本,可以升级到2.4+版本,直接点击首页提示升级即可 相关依赖插件: Docker plugin Docker Commons Plugin Docker API Plugin Docker Pipeline Permissive Script Se

    2024年02月09日
    浏览(43)
  • Jenkins用户权限设置和运行节点配置实战

    设定Jenkins用户权限的目的~团队使用Jenkins 给不同用户分配权限的好处 用户1:Jenkins 管理员:配置Jenkins,创建和更新Job,运行Job,查看日志 用户2:Jenkins 任务开发:创建和更新Job,运行Job,查看日志 用户3:Jenkins 使用者:运行Job,查看日志 新建3个用户 分配权限 增大Jenkins的任务执行能

    2024年02月12日
    浏览(50)
  • 【jenkins】主从机制及添加Slave节点操作

    日常构建Jenkins任务中,会经常出现下面的情况: 自动化测试需要消耗大量的 CPU 和内存资源,如果服务器上还有其他的服务,可能会造成卡顿或者宕机这样的情况; Jenkins 平台上除了这个项目,还有其他项目需要构建,如果同一时间构建大量的任务会造成多个任务抢占资源的

    2024年04月10日
    浏览(40)
  • 利用 Kubernetes 内置 PodTemplate 管理 Jenkins 构建节点

    作者:Rick Jenkins 可以很好地与 Kubernetes 集成,不管是控制器(controller)还是构建节点(agent),都能以 Pod 的形式运行在 Kubernetes 上。 熟悉 Jenkins 的用户,都知道 Jenkins 支持多种类型的构建节点,例如:固定配置、动态配置。而节点与控制器连接的方式, 又包括:JNLP、SSH

    2024年02月04日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包