zoukankan      html  css  js  c++  java
  • jenkins配置master-slave并发布dubbo服务

    从有道云笔记中复制,格式会有变化。

    一、配置步骤
     
    1. 使用已有的虚拟电脑备份(CentOS7.2, 安装有JDK8、MAVEN3.5、JENKINS2.73.3-1.1、GIT1.8.3.1)、分别导入为两台测试用的虚拟电脑(IP分别设置为120、122,其中120当作MASTER,122当作SLAVE)
     
    2、 登录120的Jenkins,进入“系统管理/管理节点”,新建一个SLAVE节点,节点信息如下图:
    创建后可以在节点列表中看到新增的节点,进入slave节点运行,会在122中安装slave-agent,如果未配置JAVA的环境变量,会从ORACLE官网下载(当然是下不成功的):
     
    3. 新建一个JOB进行测试,与普通的dubbo服务构建的差别在于需要配置“参数化构建过程”,如图:
    下拉框中的node选项需要 安装插件“Node and Label parameter plugin”
     
    4. 运行JOB,配置了“参数化构建过程后”,“立即构建”按钮消失,出现“Build with Parameters”代替:
     
    点击运行后,出现NODE列表,选择需要发布的节点,点击构建,多选无效,需要发布多个节点则需要操作多次。
    发布后,可以看到有两个正在运行的项目:
     
    到zookeeper客户端中查看注册的dubbo服务,可以看到新增了两个服务提供者
     
     
    二、配置过程中遇到的问题:
     
    1. 在120中安装git时,出现404错误,原因是yum缓存出错,执行yum clean all后再安装即可,但是122却没有这个问题,非常奇怪,明明是从同一个镜像导入的虚拟电脑。
     
    2. jenkins中,默认未安装node插件,需要手动安装
     
    3. 安装slave-agent时,发现会自动下载jdk,原因是未在slave节点中配置对应的环境变量,而jenkins并不会读取/etc/profile中的环境变量
     
     
    附:
    Jenkins Master/Slave架构
     
    摘自:http://www.cnblogs.com/itech/archive/2011/11/11/2245849.html
    一 Jenkins Master/Slave架构
    Master/Slave相当于Server和agent的概念。Master提供web接口让用户来管理job和slave,job可以运行在master本机或者被分配到slave上运行。一个master可以关联多个slave用来为不同的job或相同的job的不同配置来服务。
    当job被分配到slave上运行的时候,此时master和slave其实是建立的双向字节流的连接,其中连接方法主要有如下几种:
    1)master通过ssh来启动slave
    Jenkins内置有ssh客户端实现,可以用来与远程的sshd通信,从而启动slave agent。这是对*unix系统的slave最方便的方法,因为*unix系统一般默认安装有sshd。在创建ssh连接的slave的时候,你需要提供slave的host名字,用户名和ssh证书。创建public/private keys,然后将public key拷贝到slave的~/.ssh/authorized_keys中,将private key 保存到master上某ppk文件中。jenkins将会自动地完成其他的配置工作,例如copy slave agent的binary,启动和停止slave。但是你的job运行所依赖其他的项目需要你自己设置。
    2)master通过WMI+DCOM来启动windows slave
    对于Windows的Slave,Jenkins可以使用Windows2000及以后内置的远程管理功能(WMI+DCOM),你只需要提供对slave有管理员访问权限的用户名和密码,jenkins将远程地创建windows service然后远程地启动和停止他们。
    对于windows的系统,这是最方便的方法,但是此方法不允许运行有显示交互的GUI程序。
    注意:不想其他类型的链接方式,此种方式slave(note)的名字非常重要,将被用来当做slave的地址访问slave。
    3)实现自己的脚本来启动slave
    如果上面成套的方法不够灵活,你可以实现自己的脚本来启动slave。你需要将启动脚本放到master,然后告诉jenkins master在需要的时候调用此脚本来启动slave。
    典型地,你的脚本使用远程程序执行机制,例如SSH,RSH,或类似的方法(在windows,可以通过cygwin或psexec来完成),
    在脚本的最后需要执行类似java -jar slave.jar来启动slave。slave.jar可以从http://yourjenkinsserver:port/jnlpjars/slave.jar下载,也可以在脚本的开始先下载此slave.jar从而保证slave.jar正确的版本。 但是如果使用ssh slave plugin的话,此plugin将自动地更新slave.jar。
    4)通过Java web start来启动slave
    jave web start(jnlp)是另一种启动slave的方法。用这种方法你需要登录到slave,打开浏览器,打开slave的配置页面来连接。还可以安装为windows service来使得slave在后台运行。
    如果你需要运行的程序需要UI的交互,使用下面的方法:在slave系统上创建jenkins用户,设置自动登录,在系统的startup items增加slave JNLP文件的快捷方式,使得slave在系统登录的时候自动启动。
    5)直接启动slave
    此方式类似于java web start,可以方便地在*unix系统上将slave运行为daemon。需要配置slave为JNLP类型连接,然后在slave机器上执行
    java -jar slave.jar -jnlpUrl http://yourserver:port/computer/slave-name/slave-agent.jnlp
    二 Slave配置的好的建议
    * 每个slave都有用户jenkins,所有的机器使用相同的UID和GID,使得slave的管理更加简单;
    * 每个机器上jenkins用户的home目录都相同/home/jenkins, 拥有相同的目录结构使得维护简单;
    * 所有的slave运行sshd,windows运行cygwin sshd;
    * 所有的slave安装ntp client,用来与相同的ntp server同步;
    * 使用脚本sh来自动地配置slave的环境,例如创建jenkins用户,安装sshd,安装java,ant,maven等;
    * 使用脚本来启动slave,保证slave总是运行在相同的参数下:
    #!/bin/bash JAVA_HOME=/opt/SUN/jdk1.6.0_04 PATH=$PATH:$JAVA_HOME/bin export PATH java -jar /var/jenkins/bin/slave.jar
  • 相关阅读:
    在Spring中使用cache(EhCache的对象缓存和页面缓存)
    halcon 模板匹配 -- 转化 vector_angle_to_rigid
    halcon 模板匹配 -- find_shape_model
    halcon 模板匹配 -- create_shape_model
    C#快速获取指定网页源码的几种方式,并通过字符串截取函数 或 正则 取指定内容(IP)
    C# Socket通讯 本机多网卡,指定网卡通讯
    C# 获取所有网卡信息
    C#关闭退出线程的几种方法
    C#多线程方法 可传参
    C# Datetime 使用详解
  • 原文地址:https://www.cnblogs.com/weijs/p/9759001.html
Copyright © 2011-2022 走看看