zoukankan      html  css  js  c++  java
  • Jenkins-插件安装-多实例

    1,Jenkins插件安装:
    Jenkins最大的功能莫过于插件丰富,基于各种插件可以满足各项需求,Jenkins本身是一个框架,真正发挥作用的各种插件。Jenkins默认自带很多插件,如果没有添加新插件,可以再Jenkins平台主页进操作,步骤如下:
    Jenkins-ext-plugin插件选择并选择,如果没有该插件,则需单击“高级”,手动上传插件并安装:
    Jenkins平台首页>系统管理>插件管理>可选插件>搜索

     访问Jenkins官网/或者清华源官网 手动下载插件,将下载的插件传到服务器Jenkins根目录(/root)下的plugins目录,即/root/.jenkins/plugins目录,重启Jenkins即可。 

    Jenkins插件下载地址:
    https://wiki.jenkins-ci.org/display/JENKINS/Plugins
    清华源国内 Jenkins插件下载地址:
    https://mirrors.tuna.tsinghua.edu.cn/jenkins/war

     

    Email-ext和Token-macro、Email-template插件下载URL如下:
    https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+plugin
    https://wiki.jenkins-ci.org/display/JENKINS/Token+Macro+Plugin
    https://wiki.jenkins-ci.org/display/JENKINS/Email-ext+Template+Plugin
    2,Jenkins多实例配置:
    单台Jenkins服务器可以满足企业测试环境及生产环境使用Jenkins使用Jenkins自动部署+测试平台,如果每天更新发布多个WEB网站,Jenkins需要同时处理很多的任务。
    基于Jenkins分布式,也即slave方式可以缓解Jenkins服务器的压力,Jenkins多实例框架如下图:可以在Windows、Linux、MAC等操作系统上执行是slave。
    Jenkins slave架构图:
    Jenkins多实例 slave原理是将原本Jenkins Master端的构建项目分配给slave端去执行,Jenkins Master分配任务时,Jenkins Master端通过SSH远程slave,在slave端启动slave.jar程序,通过slave.jar实现对网站的构建编译及自动部署。所以在slave端服务器必须按照Java JDK环境来执行Master端分配的构建任务。配置slave服务器方法如下:1
     
    1)在slave服务器,插件远程执行Jenkins(需创建)任务的用户,名称为Jenkins,Jenkins工作目录/home/Jenkins, Jenkins Master免密钥登录slave服务器或者通过用户名和密码登录slave:
    useradd jenkins
    部署jdk JAVA tomcat环境:
    mkdir -p /usr/java
    tar xf jdk1.8.0_131.tar.gz -C /usr/java
    tar xf apache-tomcat-8.0.50.tar.gz
    mv apache-tomcat-8.0.50 /usr/local/tomcat

    2)slave服务器按照JAVA JDK版本,并将其软件路径加入系统环境变量。
    设置环境变量: /etc/profile

    export JAVA_HOME=/usr/java/jdk1.8.0_131
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
    
    source /etc/profile

     

     

    4)配置slave1节点,指定Jenkins编译工作目录,设置IP地址,Credentials Add添加登录slave用户名和密码:
    点击高级添加jdk java路径(如果是安装的openjdk不需要配置该步骤,即是yum 安装的jdk)
    5)Jenkins slave节点配置完毕,查看slave状态:
    6)单击slave节点,然后选择launch slave agent,单击测试slave agent是否正常工作:

     

     

    7)Jenkins+slave配置完毕后,如果同时运行多个任务,发现只运行一个任务,另外的任务在等待,那需要怎么调整呢,需要配置JOB工程勾选“在必要的时候并发构建”即可:

     

    3,Jenkins+ansible高并发构建:
    Jenkins自动部署基于shell+for循环方式部署10台一下的JAVA客户端服务器,效率是可以接受的,但是如果是大规模服务器需要部署或者更新网站,通过for循环串行执行效率会大打折扣,所以需要考虑到并行机制。
    ansible是一款极为灵活的开源工具套件,能够大大简化Unix管理员的自动化配置管理与流程控制方式。它利用推送方式对客户系统加以配置,这样所有工作都可在主服务器端完成。 使用ansible+Jenkins架构方式实现网站自动部署,满足上百台、千台服务器的网站部署和更新。
    ansible服务需要部署在Jenkins服务器,客户端服务器无需安装ansible。ansible基于SSH工作,所以需提前做好免密钥或者通过sudo用户远程更新网站。
    ansible自动部署网站,有两种方法,一种基于ansible远程执行shell脚本,另外一种是ansible编写playbook剧本,实现网站自动部署。

    ansible+shell脚本方式自动部署网站方法:
    1)Jenkins服务器安装ansible软件,Red Hat、centos操作系统可以直接基于YUM工具自动安装ansible:

    yum install ansible -y

    2)添加客户端服务器,在/etc/ansible/hosts中添加需要部署的客户端IP列表:例如下面代码:

    cat /etc/ansible/hosts
    [web]
    192.168.1.10
    192.168.1.11
    192.168.1.12
    192.168.1.13
    192.168.1.14
    192.168.1.15

    3)Jenkins平台首页,选择项目,配置 执行shell输入以下内容:或者可以直接使用ansible -m script 模块调用本机脚本,需要拷贝到远程机器:

    scp  /root/.jenkins/workspace/晒库网发布/target/edu.war 192.168.1.15:/usr/local/tomcat/webapps/ 
    或者
    ansible web -m copy -a "src=/root/.jenkins/workspace/晒库网发布/target/edu.war dest=/usr/local/tomcat/webapps/"
    ansible web -m script -a "/data/sh/auto_deploy.sh"

    4)Jenkins服务器端/data/sh/auto_deploy.sh脚本内容:

    #!/bin/bash
    #Auto deploy Tomcat for jenkins
    #By author jfedu.net 2020
    export JAVA_HOME=/usr/java/jdk1.8.0_131
    TOMCAT_PID=`/usr/sbin/lsof -n  -P  -t  -i  :8080`
    TOMCAT_DIR="/usr/local/tomcat/"
    FILES="edu.war"
    DES_DIR="/usr/local/tomcat/webapps/ROOT/"
    DES_URL="http://jenkins.jfedu.net/download/edu.war"
    BAK_DIR="/data/`date +%Y%m%d-%H%M`"
    mkdir -p $BAK_DIR
    cp -a $DES_DIR/* $BAK_DIR/
    rm -rf $DES_DIR/*
    cd $DES_DIR
    cp /usr/local/tomcat/webapps/edu.war ./
    /usr/java/jdk1.8.0_131/bin/jar  -xf  $FILES
    ####################
    cd $TOMCAT_DIR;rm -rf work
    sleep 10
    tail -n 50 $TOMCAT_DIR/logs/catalina.out

    使用ansible模块命令不调用脚本适合单个网站部署:

    ansible web -a "mkdir -p /data/`date +%Y%m%d-%H%M`;cp -a /usr/local/tomcat/webapps/ROOT/* /data/`date +%Y%m%d-%H%M`"
    ansible web -a "rm -rf /usr/local/tomcat/webapps/ROOT/*"
    ansible web -m copy -a "src=/root/.jenkins/workspace/晒库网发布/target/edu.war dest=/usr/local/tomcat/webapps/ROOT/"
    ansible web -a "cd /usr/local/tomcat/webapps/ROOT/;/usr/java/jdk1.8.0_131/bin/jar xf edu.war "

     

  • 相关阅读:
    Vue Router基础
    Bootstrap4入门
    React性能优化
    Koa,React和socket.io
    RN-进阶
    RN-入门基础
    RN-环境配置
    React高级指引
    React基础概念
    实现A-Z滑动检索菜单
  • 原文地址:https://www.cnblogs.com/fengyuanfei/p/13825121.html
Copyright © 2011-2022 走看看