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 "

Jenkins-插件安装-多实例的更多相关文章

  1. Maven-002-eclipse 插件安装及实例

    因为平常编码的时候,习惯了使用 eclipse 进行编码,因而需要将 eclipse 安装 maven 的插件,安装步骤如下所示: 一.安装 选择菜单: help -> Install New  ...

  2. Jenkins插件安装实战篇

    Jenkins插件安装实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 上篇博客我介绍了Jenkins是啥,以及持续集成,持续交付,持续部署的概念,那么问题来了:你知道CI和C ...

  3. 【Devops】【Jenkins】Jenkins插件安装失败处理方法

    本篇解释:Jenkins插件安装失败处理方法 不论是刚启动成功后进行的推荐插件安装,还是后期使用Jenkins过程中进行插件的安装.出现插件安装失败的问题,可以通过本篇解决! [注意,插件下载安装失败 ...

  4. docker jenkins 插件安装提速

    公司安装的jenkins 自动布署服务挂了,好像有漏洞一直搞,打算重新安装一个,随便再学习一下 一上来就用docker 解决问题 #!/bin/bash docker stop myjenkins d ...

  5. Jenkins 插件安装问题

    插件安装问题 尝试修改更新站点为可用的镜像站点 打开 Jenkins > Manage Jenkins > Manage Plugins > Advanced,将 Update Si ...

  6. Jenkins插件安装失败

    插件安装失败 通常要下载国外的软件插件之类的时候,链接到国外会太慢或者被墙,这就需要我们去换镜像源 修改配置文件 我们在jenkins里更改升级站点的url后 若安装插件时还是一直卡在"安装 ...

  7. Jenkins插件安装和系统配置

    前面我们只是把Jenkins部署在Tomcat中了,下面来看看Jenkins中的插件和一些基础的系统配置. 1.用户管理 我们一般的项目组肯定是由多名成员组成的,如何向Jenkins添加我们的成员呢? ...

  8. jenkins插件安装与升级[三]

    标签(linux): jenkins 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 默认的插件 Folders Plugin OWASP Markup Form ...

  9. Jenkins插件安装

    默认的Jenkins平台继有的功能是有限的,插件为Jenkins提供了各种扩展功能,有了插件,Jenkins就会变得更加强大,这里推荐两个不错的插件: 点击菜单栏中“系统管理”--“插件管理”--“A ...

  10. jenkins插件安装失败更改插件源

    看提示的日志说是下载失败,应该是网络问题 最好的办法就是更改下载源 [系统管理][管理插件][高级]升级站点项的的地址修改成 修改之后,安装了一下git的插件速度非常快,jenkins镜像地址列表ht ...

随机推荐

  1. SpringBoot定义优雅全局统一Restful API 响应框架完结撒花篇封装starter组件

    之前我们已经,出了一些列文章. 讲解如何封统一全局响应Restful API. 感兴趣的可以看我前面几篇文章 (整个starter项目发展史) SpringBoot定义优雅全局统一Restful AP ...

  2. Nginx之数据流代理stream模块简介和使用 ---九五小庞

    一.stream模块简介   stream模块一般用于TCP/UDP数据流的代理和负载均衡,通过stream模块我们可以代理转发tcp报文.ngx_stream_core_module模块从1.9.0 ...

  3. 报错 no currentsessioncontext configured!

    no currentsessioncontext configured! 使用hibernate框架报错 配置了session工厂类,使用getCurrentSession();时候引起的,原因是cu ...

  4. Qt+GDAL开发笔记(一):在windows系统mingw32编译GDAL库、搭建开发环境和基础Demo

    前言   麒麟系统上做全球北斗定位终端开发,调试工具要做一个windows版本方便校对,北斗GPS发过来的是大地坐标,应用需要的是经纬度坐标,所以需要转换,可以使用公式转换,但是之前涉及到了另一个sh ...

  5. Linux 使用grep过滤字符串中的指定内容

    命令示例:echo port 1234 123 | grep -oP 'port\s+\K\d+' 返回: 1234 这条命令使用 grep 工具来在文本中查找 "Port " 后 ...

  6. 【go语言】2.1.3 函数的定义和使用

    在 Go 语言中,函数是一种代码抽象和复用的方式.函数可以接受参数,执行特定的操作,并返回结果. 函数的定义 函数的定义以 func 关键字开始,后面跟着函数名.参数列表.返回值列表(可选)以及函数体 ...

  7. 【Go blog】Govulncheck v1.0.0 发布了!

    我们很高兴地宣布,govulncheck v1.0.0 已经发布,同时也发布了用于集成扫描到其他工具的 API 的 v1.0.0 版本!Go 对漏洞管理的支持首次在去年九月宣布.从那时起,我们做了一些 ...

  8. pandas 根据内容匹配并获取索引

    bool = ExcelDataStr.str.contains("Item No./Customer/Saler") # 初始位置:initial position, 终位置:e ...

  9. 建设数字工厂:MRP物料需求计划的逻辑原理与配置方法

    本文分享自华为云社区<数字工厂深入浅出系列(七): MRP物料需求计划的逻辑原理与配置方法>,作者:云起MAE. MRP是生产制造企业"管好"物料的核心工具方法,基本思 ...

  10. C# CEFSharp WCF开发桌面程序实现“同一网站多开”

    前言 孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说:"对呀,对呀!CEFSharp,你用过么?访问同一网址实现多开怎么实现?比如我有3个淘宝店,我想同时登录维护,就像传说中的指 ...