zoukankan      html  css  js  c++  java
  • Jenkins的分布式构建

    1.架构

     Jenkins的Master-Slave分布式架构可以解决单点构建任务多、负载较高、性能不足的问题。

    2.原理

    对于jenkins的分布式框架,可以简单的理解为server-client模式,在jenkins中是Master-slave,也就是一个主的server叫Master,其他的子client都是slave,所以以后我们说slave就是指的一个一个的客户端,而master就是指的主机。
    Master的作用:负责分发job任务的。把job分配给某个或者某几个slave来工作。
    Slave的作用:负责干活的,也就是do job的。一个一个的客户端来真正运行Master给我们的任务。
    Jenkins的分布式构建的核心概念是在slave主机部署一个slave.jar(linux上是remoting.jar),然后master主机和slave主机的slave.jar(linux上是remoting.jar)通讯实现分布式构建,因此部署Jenkins分布式构建的核心步骤是实现master主机和slave主机的无障碍(无密码)通讯,如图所示。
     
    使用场景:多个自动化测试项目部署到Jenkins,需要同时跑多个自动化用例以节省时间,可以使用Jenkins的slave节点来执行分布式构建

    3.搭建步骤(这里我的master和slave都是cenos7,且master上jenkins是用root启动的)

      前置条件:master上需要安装Jenkins、jdk、git;

                             slave上需要安装jdk、git(不需要安装Jenkins)

    a.slave新建用户jenkins(避免与其他用户混淆,当然也可以使用其他用户)参考:linux常用命令-11用户相关命令

    b.设置免密登录(master免密登录slave)参考:linux-scp命令及如何设置免密登录 

    在master上执行

    ssh-keygen

    ssh-copy-id  jenkins@slave服务器的ip   #这里的jenkins就是步骤a中新建的用户jenkins,与a中的用户保持一致即可

    c.新建slave节点

    登录到master上部署的Jenkins,系统设置-节点管理-新建节点,进行下图中的配置,注意credentials的配置,其实就是a中jenkins的用户名和密码(也可以用用户名+msater的公钥)

    然后保存后启动代理即可

    节点列表可查看刚刚创建的slave节点

    d.新建job进行测试

    新建一个自由风格的job,并在general中设置限制项目的运行节点为178slave

     查看控制台输出日志及slave上workspace内容:

     

    特别说明:

    1.job中的ssh-agent我觉得配不配置都可,没发现有什么影响,但是配置的话,要使用私钥id_rsa(与免密登录id_rsa不同)

     

     2.slave上remoting.jar的位置

  • 相关阅读:
    Spring Cloud 五 Feign的文件上传实现
    Spring Cloud 四:服务消费(Feign)【Dalston版】
    Spring Cloud 三:服务消费(Ribbon)【Dalston版】
    Spring Cloud二:服务消费(基础)【Dalston版】
    Spring Cloud 一:服务注册与发现(Eureka)【Dalston版】
    mybatis 单个参数
    医院设置(图论Floyd)
    Mysql学习——安装登录
    字母游戏(搜索)
    子数列连续和
  • 原文地址:https://www.cnblogs.com/wang-mengmeng/p/12059886.html
Copyright © 2011-2022 走看看