zoukankan      html  css  js  c++  java
  • Jenkins自动化CI CD流水线之4--Master-Slave架构

    一、介绍

    jenkins的Master-slave分布式架构主要是为了解决jenkins单点构建任务多、负载较高、性能不足的场景。

    Master/Slave相当于Server和agent的概念。Master提供web接口让用户来管理job和slave,job可以运行在master本机或者被分配到slave上运行构建。一个master(jenkins服务所在机器)可以关联多个slave用来为不同的job或相同的job的不同配置来服务。

    二、安装

    前提:slave所在服务器必须有java环境

    jenkins web端进行操作:

    系统管理->管理节点->新建节点

    1)进行基础配置,配置选项中的内容是可变的,根据情况来

    注意这里需要配置凭据,也就是配置slave所在服务器用户和密码

    之后保存,如果无误的话就会直接启动了,如图下所示是有问题的

     

    通过看输出日志,我们发现是jdk的问题,一般来说,其会判断slave所在服务器有没有jdk,如果有的话其就会进行检测(其自己回去几个路径下进行检查),如下图所示,就是没有检查到(因为jdk是我们自己装的,路径并不是默认的路径)。

    没有检查到的话其就会去oracle官网下载,来为slave所在服务器进行安装,但是因为中国的原因,被墙了,所以也会下载失败,最终就导致彻底失败了,失败如图下:

     

    有两种方法解决:推荐方法1:

    方法1:

    在配置时高级的选项里指定java路径:如下图所示:

    方法2:

    为java路径做一个软链接,保证jenkins可以检测到java。

    [root@web ~]# ln -s /usr/local/jdk1.8/bin/java /usr/bin/java
    [root@web ~]# ll /usr/bin/java 
    lrwxrwxrwx 1 root root 26 Jul 25 17:33 /usr/bin/java -> /usr/local/jdk1.8/bin/java

     之后在看已经成功了!!!!!

    并且我们也可以在slave所在服务器看到:

    jar包就是负责接收master任务的。

    三、配置

    在项目job中进行配置:

    可通过标签或者名称进行匹配(标签可在安装时配置)

    四、构建

    我们可以发现控制台的日志,其也是slave构建的

    之后查看构建完的工作目录,也有我们预想中的文件。

    这样基本上就实现了借助jenkins的slave去构建job了。

    目前我们是在slave构建也在slave上部署,之后我们可以通过脚本,比如借助rsync、ansible等部署在其他服务器上。

    五、扩展

    我们也可以为我们的slave服务器在配置时候加上标签,这样也会方便我们选择,用法也不单单局限在一台服务器上,可以让多台slave去竞选。

  • 相关阅读:
    实现分享功能(分享到qq空间,新浪微博)
    AXIOS构建请求处理全局loading状态&&AXIOS避免重复请求loading多次出现
    Vue.use() 方法
    判断浏览器版本
    判断当前环境是ios还是安卓
    如何理解react中的super() super(props)
    JavaScript 函数调用时带括号和不带括号的区别
    npm 安装时 --save --dev 和 --save 区别
    npm 全局安装和局部安装的区别
    module.exports 与 exports
  • 原文地址:https://www.cnblogs.com/forever521Lee/p/9593572.html
Copyright © 2011-2022 走看看