1987WEB视界-分享互联网热点话题和事件

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

Jenkins进阶篇-节点配置

1987web2023-10-06WEB开发64
当我们使用Jenkins构建的项目达到一定规模后,一个Jenkins服务可能承受不了负载,会导致很多的构建任务堆积,严重的话还会拖垮这台服务器,导致上面的服务无法使用。例如我们公司目前在Je

当我们使用 Jenkins 构建的项目达到一定规模后,一个 Jenkins 服务可能承受不了负载,会导致很多的构建任务堆积,严重的话还会拖垮这台服务器,导致上面的服务无法使用。例如我们公司目前在 Jenkins 上要构建的项目多达百个,开发环境需要构建部署,测试环境需要构建部署,甚至正式环境也是,开发环境的部署构建频率是最高的,我们目前的做法是每一个代码的提交都会触发构建操作,单个 Jenkins 已经满足不了频繁的构建的要求了,这时候就需要增加我们 Jenkins 的构建节点,由主节点自己进行调度,将构建任务分配到不同的节点。

这里可能有人会问,我们的项目有必要这么频繁的构建部署吗?答案是肯定的,在持续交付里面有一个理念就是快速的交付可用的产品,要想快速的交付,肯定就免不了需要频繁的构建。一个研发团队能做到短平快的交付才是正常的,是研发效能高的表现。试想一下,现在还有哪个互联网研发团队,一年半载才交付一次产品呢。

配置 Jenkins 的节点也比较简单,准备好要作为 Jenkins 构建节点的服务器,同时要确保服务器上有 git 和构建项目需要的各个工具。例如 Java 栈,就需要确保节点机器上有 JDK、Maven 和 Gradle 等。构建需要的工具可以不用到节点机器上去单独安装,我们可以在 Jenkins 主节点上配置需要的构建工具。

例如我这里在 Jenkins 主节点上,【全局工具配置】里面增加了一个 JDK 工具:

然后去到 Jenkins 的【系统管理】下面的【节点管理】里面,进行【新建节点】:

全部设置如下图:

需要注意的是设置一个工作目录,我这里是/home/jenkins/jenkins_node_work_dir,否则 Jenkins 节点上的一些文件就会在用户的 home 目录。【用法】这里选择【只允许运行绑定到这台机器的Job】,如果各个项目的构建方式相同,你可以选择【尽可能的使用该节点】,两者的区别在于机器的环境差异,如果我要构建一个 nodejs 项目,但是只有 A 节点才有 nodejs 环境,那么就要将 nodejs 项目的构建任务绑定到 A 节点,否则其他机器没有 nodejs 环境是没法构建项目的,同理如果项目必须要在 Mac 系统上构建,那么节点也必须是 Mac 系统才行,推荐的设置是将其设置为【尽可能的使用该节点】,如果某些构建任务需要用到特定的构建节点,在该各自的任务上设置即可。这样的好处是既可以让 Jenkins 根据各个节点的负载情况自行调度使用闲置机器来构建各个节点都能构建的任务,又可以让特定任务绑定在特定的节点上构建。

节点添加好后我们来验证下看看能否正常使用。去到我们之前创建的jenkins-freestyle-test-task 任务进行如下下设置,如果没有新建一个自由风格的任务:

然后我们连续多次点击【立即构建】就会出现如下效果,该任务在并行构建,并且是多个节点在并行构建:

如果你想让任务绑定到特定的节点上运行,可以在任务的设置里面配置【限制项目的运行节点】,如果有多个节点可以运行该任务可以用或符号连接,例如我这里是jenkins-node-192.168.31.200 || master,表示这个任务可以在这两个节点上运行,至于具体怎么调度,Jenkins 自己会做选择,我们不用操心。

到此我们 Jenkins 节点的配置就完成了,如果你有多的闲置机器可以按照介绍的方式都添加上来,提高 Jenkins 的构建能力,多一台机器那么构建能力理论上就增加一倍。

随便我们也看看节点机器上的工作目录有什么变化:

刚添加好节点,会产生这些文件。

[jenkins@asus-centosjenkins_node_work_dir]$pwd/home/jenkins/jenkins_node_work_dir[jenkins@asus-centosjenkins_node_work_dir]$ls-lah总用量1.5Mdrwxrwxr-x.3jenkinsjenkins4231419:54.drwx------.8jenkinsjenkins18931419:54..drwxrwxr-x.4jenkinsjenkins3431419:54remoting-rw-rw-r--.1jenkinsjenkins1.5M31419:54remoting.jar

当构建任务被分配到该节点进行构建时产生的文件,workspace 是任务构建目录,和 Jenkins 安装目录下的 workspace 目录一样。tools 目时构建用到的工具目录,例如用到JDK。

总用量1.5Mdrwxrwxr-x.5jenkinsjenkins7231419:57.drwx------.8jenkinsjenkins18931419:54..drwxrwxr-x.4jenkinsjenkins3431419:54remoting-rw-rw-r--.1jenkinsjenkins1.5M31419:54remoting.jardrwxrwxr-x.3jenkinsjenkins3031419:57toolsdrwxrwxr-x.3jenkinsjenkins2731419:57workspace[jenkins@asus-centosjenkins_node_work_dir]$lstools/-lah总用量0drwxrwxr-x.3jenkinsjenkins3031419:57.drwxrwxr-x.5jenkinsjenkins7231419:57..drwxrwxr-x.3jenkinsjenkins1831419:57hudson.model.JDK[jenkins@asus-centosjenkins_node_work_dir]$lstools/hudson.model.JDK/-lah总用量0drwxrwxr-x.3jenkinsjenkins1831419:57.drwxrwxr-x.3jenkinsjenkins3031419:57..drwxrwxr-x.7jenkinsjenkins27131419:58JDK8[jenkins@asus-centosjenkins_node_work_dir]$lstools/hudson.model.JDK/JDK8/-lah总用量26Mdrwxrwxr-x.7jenkinsjenkins27131419:58.drwxrwxr-x.3jenkinsjenkins1831419:57..drwxr-xr-x.2jenkinsjenkins4.0K742019bin-r--r--r--.1jenkinsjenkins3.2K742019COPYRIGHTdrwxr-xr-x.3jenkinsjenkins132742019include-rw-rw-r--.1jenkinsjenkins1731419:58.installedByHudson-rw-r--r--.1jenkinsjenkins5.0M6122019javafx-src.zipdrwxr-xr-x.5jenkinsjenkins185742019jredrwxr-xr-x.5jenkinsjenkins245742019lib-r--r--r--.1jenkinsjenkins44742019LICENSEdrwxr-xr-x.4jenkinsjenkins47742019man-r--r--r--.1jenkinsjenkins159742019README.html-rw-r--r--.1jenkinsjenkins424742019release-rw-r--r--.1jenkinsjenkins21M742019src.zip-rw-r--r--.1jenkinsjenkins114K6122019THIRDPARTYLICENSEREADME-JAVAFX.txt-r--r--r--.1jenkinsjenkins166K742019THIRDPARTYLICENSEREADME.txt

我这里的节点上没有单独设置和安装 JDK 工具,但是任务用到了 Java 命令 却能正常构建,是因为我在 Jenkins 主节点上添加过 JDK,当其他构建节点需要工具工具时就会自动安装到 tools 目录。当然目前可以在 Jenkins 上配置的工具 有限,只支持如下工具的配置:

对于其他不支持在 Jenkins 管理面板配置的工具,我们可以在节点上自行安装到全局,也可以将工具放到自己喜欢的目录,然后配置环境变量指向到工具目录。

如果你在使用 Jenkins 时遇到什么棘手的问题,欢迎留言讨论。

第2步:环境部署

下载jenkins版本直接选择最新版本下载,下载完成后,直接将jenkins.war包复制到tomcat的webapps目录下,实践过程如下图所示:

注意事项:如果在linux环境搭建直接在线下载jenkins.war包方法是一样。

下载完成后,即可启动tomcat服务器,系统会自动部署安装jenkins。

待初始化启动完成,过程如下图所示:

启动完成后我们即可访问jenkins,通过地址:http://localhost:8080/jenkins进行访问。

输入用户名与密码进行登录,我的用户名与密码使用默认的。

Username:admin

Password:123456

登录成功后,进入jenkins的主界面。

第3步:输入密码激活,密码存放在安装目录下。

如下图所示:

用txt打开图中红色的地址中的initialAdminPassword文件,复制里面的字符串,粘贴到图中输入框。然后点击图中的继续按钮。

第4步:执行完成后,安装推荐插件即可,在这里需要1个小时左右的时间等待,大家需要需要自行安装即可,最后安装完成即可部署自己的自动化项目,达到无人值守的目的。

1小时带你入门Jenkins持续集成自动化环境搭建

各位小伙伴们:大家好!Kitty小编很久未与大家分享技术类的文章啦,趁着今天有空与大家分享一篇Jenkins软件包及组件安装过程的文章,希望大家能从中有所收获,

  • 下一篇
  • 。。。

    1.2、配置环境变量

    右击我的电脑,点击属性--高级系统配置--环境变量

    新建名为classpath的变量名,变量值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意是里的内容)直接复制即可。

    基于windows操作系统安装部署jenkins教程,值得收藏

    概述