访问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
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
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 "