Jenkins 集群搭建
一.前言
Jenkins是当下比较流行的一款功能强大的持续集成工具,它支持搭建集群,来提高多项目的构建速度,模式为主从模式,master会将任务分配到各个从节点进行并发构建,从而提高速度,下面介绍一下如何搭建Jenkins集群。
二.环境介绍
系统环境:CentOS 7.2
Jenkins版本:2.121.1 长期支持版
两台服务器,一台作为master,一台作为slave,设A为master,设B为slave。
关于Jenkins的安装,根据个人使用过一段时间来说,不推荐使用docker来安装,推荐直接安装。Jenkins只需要装在master即可。Jenkins的安装教程:https://www.cnblogs.com/stulzq/p/9291237.html
三.从节点的环境准备
根据你是用的源代码管理工具git或者svn来安装对于的工具,还有需要安装可能会构建的项目所需的环境,比如.NET Core 项目就需要安装 .NET Core SDK,JAVA项目就需要安装JAVA环境。从节点无需安装Jenkins。
1.确保Master和Slave之间能相互通信。
2.master执行以下shell命令,确保master能通过ssh登录slave
#生成秘钥 生成以后我这里保存在 /root/.ssh/id_rsa 记住这个位置
ssh-keygen
#将秘钥发送到slave 此过程会输入slave密码
ssh-copy-id <从节点用户一般为root>@<从节点ip>
#执行ssh命令进行登录
ssh <从节点用户一般为root>@<从节点ip>
四.建立结点
打开Jenkins -> 系统管理 -> 管理节点 -> 新建节点
按图中标记的顺序来操作,输入结点名称,选择固定结点类型,然后点击OK按钮。
五.配置节点
结点名称:随意填
描述:随意填
并发构建数:同时进行构建的最大数量,我这里设置为2
工作目录:从节点上的jenkins工作目录,权限要给足。
标签:随意填,我们将项目关联到节点时,可以根据标签来。
用法:选择“尽可能的使用这个节点”,相当于设置结点优先级。
启动方式:“Launch slave agent via SSH”,使用SSH由master连接到slave来执行任务
主机:slave的ip
Credentials:见后文
Host Key Verification Strategy :Manually trusted key Verification Strategy
Require manual verification of initial connection :选中
可用性:尽量保持在线
工具位置:不设置
环境变量:不设置
Credentials 的设置
点击“Add"按钮,选择"Jenkins"
按照上图进行设置,设置以后,在界面上选择你刚刚设置的凭据。
最后点击“添加”按钮,便完成了对slave的添加。
六.验证连接从节点
由于上面我们使用了“Manually Trusted Key Verification Strategy”策略,所以,这里我们需要手动验证一下从节点的身份。
点击我们刚刚新建的从节点 -> 点击【Trust SSH Host Key】,点击【是】:
点击【Launch agent】:
配置完成的节点列表:
在左侧会显示:
七.Job和slave的关联
在Job配置,进行如何设置即可。
参考资料
https://blog.csdn.net/ruangong1203/article/details/78687450
Jenkins 集群搭建的更多相关文章
- Jenkins集群搭建
Jenkins的目的是加快CI/CD的步伐,集群的搭建也不是必须的,当一台服务器的构建速度受到限制下,可以考虑使用主从并发构建,来加快构建速度.作为一款超级管家的角色,Jenkins的资料非常多,Je ...
- 快速搭建Jenkins集群
关于Jenkins集群 在Jenkins上同时执行多个任务时,单机性能可能达到瓶颈,使用Jenkins集群可以有效的解决此问题,让多台机器同时处理这些任务可以将压力分散,对单机版Jenkins的单点故 ...
- 搭建jenkins集群
搭建jenkins集群是为了解决单点服务器存在的性能瓶颈,也有业务的需要,比如:java服务打包的环境我们需要linux,ios打包的服务器需要mac机. 一.创建agent节点 1.打开 系统管理- ...
- Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(三):搭建jenkins集群环境
写在前面 大家可以看到本文的配图,左边是jenkins单机环境,右边是jenkins集群.个中区别,不言而喻,形象生动. 前面我分别介绍了.net core 程序的多种部署方式(无绝对孰优孰劣): 1 ...
- (三)Spark-Hadoop集群搭建-Java&Python版Spark
Spark-Hadoop集群搭建 视频教程: 1.优酷 2.YouTube 配置java 启动ftp [root@master ~]# /etc/init.d/vsftpd restart 关闭 vs ...
- Hadoop上路-01_Hadoop2.3.0的分布式集群搭建
一.配置虚拟机软件 下载地址:https://www.virtualbox.org/wiki/downloads 1.虚拟机软件设定 1)进入全集设定 2)常规设定 2.Linux安装配置 1)名称类 ...
- .Net Core2.1 秒杀项目一步步实现CI/CD(Centos7.2)系列一:k8s高可用集群搭建总结以及部署API到k8s
前言:本系列博客又更新了,是博主研究很长时间,亲自动手实践过后的心得,k8s集群是购买了5台阿里云服务器部署的,这个集群差不多搞了一周时间,关于k8s的知识点,我也是刚入门,这方面的知识建议参考博客园 ...
- 环境搭建-Hadoop集群搭建
环境搭建-Hadoop集群搭建 写在前面,前面我们快速搭建好了centos的集群环境,接下来,我们就来开始hadoop的集群的搭建工作 实验环境 Hadoop版本:CDH 5.7.0 这里,我想说一下 ...
- Jenkins集群下的pipeline实战
关于Jenkins集群 在<快速搭建Jenkins集群>一文中,我们借助docker快速搭建了Jenkins集群,今天就在这个集群环境中创建pipeline任务,体验Jenkins集群下的 ...
随机推荐
- SpringBoot主程序注解@SpringBootApplication简单分析
一.@SpringBootApplication说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用: @SpringBootA ...
- Python之tkinter:调用python库的tkinter带你进入GUI世界(二)——Jason niu
#tkinter:tkinter应用案例之便签框架LabelFrame的应用将组件(多选按钮)放到一个框架里 from tkinter import * root=Tk() root.title(&q ...
- Spark WordCount的两种方式
Spark WordCount的两种方式. 语言:Java 工具:Idea 项目:Java Maven pom.xml如下: <properties> <spark.version& ...
- SpringBoot报错:Failed to load ApplicationContext(javax.websocket.server.ServerContainer not available)
引起条件: WebSocket+单元测试,单元测试报错! 解决方法: SpringBootTest增加webEnvironment参数. https://docs.spring.io/spring-b ...
- position属性sticky和fixed的区别比较
position属性之fixed fixed总是以body为定位时的对象,总是根据浏览器窗口来进行元素的定位,通过left,right,top,bottom属性进行定位. <!DOCTYPE h ...
- C# static 变量 和方法
静态成员属于类所有,无认创建多少实例对象,静态成员在内存中只有一份:实例成员属于类的实例所有,每创建一个实例对象,实例成员都会在内存中分配一块内存区域. 就像图书馆的书,书的数量就是图书馆这个对象的静 ...
- 数据库mysql大全(高级版)
1.说明:创建数据库 CREATE DATABASE database-name .说明:删除数据库 drop database dbname .说明:备份sql server --- 创建 备份数据 ...
- css与html基础收集
1.css去掉iPhone.iPad默认按钮样式 nput[type="button"], input[type="submit"], input[type=& ...
- 3-1.Hadoop单机模式安装
Hadoop单机模式安装 一.实验介绍 1.1 实验内容 hadoop三种安装模式介绍 hadoop单机模式安装 测试安装 1.2 实验知识点 下载解压/环境变量配置 Linux/shell 测试Wo ...
- 解决微信小程序video属性controls失效问题
<view class="VideoBox"> <video class='myVideo' id="myVideo01" src=" ...