Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Stella981
• 阅读 736

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

  • 切换到/usr/local/src路径

cd /usr/local/src

  • 下载Jenkins官方war包(采用war包安装方式,启动tomcat即连jenkins一同启动,如链接失效请自行百度搜索Jenkins官网进行下载)

wget http://ftp.tsukuba.wide.ad.jp/software/jenkins/war/1.642/jenkins.war

  • 下载JDK8(登陆JAVA官网下载JDK8的RPM包,如链接失效请自行百度搜索JDK官网进行下载)

wget http://download.oracle.com/otn-pub/java/jdk/8u65-b17/jdk-8u65-linux-x64.rpm?AuthParam=1450231240_a268c960892022b130dab65f70029cf2

下载完需要将文件名称修改为XXX.rpm结尾的文件才可安装例如JDK8.rpm

  • 下载Tomcat7的tar包(目前Jenkins只支持tomcat7,tomcat8以上版本需等待Jenkins官方更新,如链接失效请自行百度搜索Tomcat官网进行下载)

wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.67/bin/apache-tomcat-7.0.67.tar.gz

  • 安装git工具

yum install -y git

  • 下载Maven(请下载以bin.tar.gz结尾的包,如链接失效请自行百度搜索Maven官网进行下载)

wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

  • 下载Ant(请下载以bin.tar.gz结尾的包,如链接失效请自行百度搜索Ant官网进行下载)

wget http://120.198.244.48:9999/mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.9.6-bin.tar.gz

  • 安装JDK8

rpm -ivh JDK8.rpm #安装rpm包

java -version #查看安装成功后的java版本

  • 添加环境变量

vim /etc/profile添加以下内容:

JAVA_HOME=/usr/java/jdk1.8.0_65

JRE_HOME=/usr/java/jdk1.8.0_65/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

vim /etc/bashrc添加以下内容:为后期Jenkins自动发布时调用shell做准备

JAVA_HOME=/usr/java/jdk1.8.0_65

JRE_HOME=/usr/java/jdk1.8.0_65/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

  • 使环境变量立即生效

source /etc/profile

source /etc/bashrc

  • 安装Tomcat

tar -zxvf apache-tomcat-7.0.67.tar.gz #解压tomcat tar包

mv apache-tomcat-7.0.67 /usr/local/tomcat7 #将tomcat目录移动到/usr/local/下并重命名为tomcat7

  • 移动jenkins.war到tomcat webapps目录下并安装启动jenkins

mv /usr/local/src/jenkins.war /usr/local/tomcat7/webapps/

cd /usr/local/tomcat7/webapps

java -jar jenkins.war #安装jenkins

/usr/local/tomcat7/bin/startup.sh #启动tomcat

  • 安装Maven

cd /usr/local/src

tar -zxvf apache-maven-3.3.9-bin.tar.gz

mv apache-maven-3.3.9 /usr/local/maven

  • 添加环境变量

vim /etc/profile添加以下内容:

MAVEN_HOME=/usr/local/maven

PATH=$PATH:$MAVEN_HOME/bin

export PATH MAVEN_HOME

  • 安装Ant

cd /usr/local/src

tar -zxvf apache-ant-1.9.6-bin.tar.gz

mv apache-ant-1.9.6 /usr/local/ant

  • 添加环境变量

vim /etc/profile添加以下内容:

ANT_HOME=/usr/local/ant

PATH=$PATH:$ANT_HOME/bin

export PATH ANT_HOME

source /etc/profile #使环境变量立即生效

  • 打开浏览器输入http://ServerIP:端口/jenkins进行访问jenkins

  • 增加需要用到的插件:Deploy to container Plugin、GIT plugin、Maven Integration plugin、Publish Over SSH、SSH Slaves plugin、Subversion Plug-in,请用以下示范方法添加安装需要的插件

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

  • 调整相关系统设置项,请自行找出列出的设置项并填写相关内容

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

到此Jenkins的系统设置即完成了,点击左下角的保存即可返回主页测试新建构建任务和发布,在新建构建任务的过程中要读取相应的源代码git库,因此首先要确保jenkins的服务器安装了git并且能顺利从git库中获取到相应的源代码才可以进行代码构建与发布。

云房使用了GitLab存放源代码,git地址为git@192.168.3.249:o2o/yf_EstimateMiddleware.git,要获取源代码首先要在jenkins服务端系统中/root/.ssh目录下生成一个公钥文件与私钥文件,将公钥文件的内容拷贝到GitLab中指定帐户的SSH密钥文本款中,看下图:

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

至此GitLab的权限添加完成,接着在jenkins服务端系统中测试拉取git库中的源代码文件,获取成功即可看到项目文件

mkdir /home/testgit

cd /home/testgit

git clone git@192.168.3.249:o2o/yf_EstimateMiddleware.git

  • 新建构建任务

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

填写以下相应内容:

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

点击左下角保存后点立即构建,jenkins会进行编译安装与打包将项目生成一个包含项目名称.war结尾的包,构建完成后请点击工作空间--target即可看到项目名称.war的包

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

接着点击配置,继续配置构建后的发布操作,如下图:

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

到此jenkins构建发布任务配置完成,还需做一步在发布的目标服务器上/save目录中建立一个publish.sh名称的脚本并给予执行权限,编写以下内容:

#!/bin/bash

#定义变量

TOMCAT_HOME="/usr/local/tomcat7"

TOMCAT_PORT=80

PROJECT="$1"

#参数验证

if [ $# -lt 1 ]; then

echo "you must use like this : ./publish.sh <projectname> [tomcat port] [tomcat home dir]"

exit

fi

if [ "$2" != "" ]; then

TOMCAT_PORT=$2

fi

if [ "$3" != "" ]; then

TOMCAT_HOME="$3"

fi

#关闭 tomcat

"$TOMCAT_HOME"/bin/shutdown.sh

echo "tomcat shutdown"

#检查 tomcat 进程

tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT`

echo "current :" $tomcat_pid

while [ -n "$tomcat_pid" ]

do

sleep 5

tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT`

echo "scan tomcat pid :" $tomcat_pid

done

#发布项目

echo "scan no tomcat pid,$PROJECT publishing"

rm -rf "$TOMCAT_HOME"/webapps/$PROJECT*

cp /save/$PROJECT*.war "$TOMCAT_HOME"/webapps/$PROJECT.war

#备份项目

BAK_DIR=/save/bak/$PROJECT/`date +%Y%m%d`

mkdir -p "$BAK_DIR"

cp "$TOMCAT_HOME"/webapps/$PROJECT.war "$BAK_DIR"/"$PROJECT"_`date +%H%M%S`.war

#删除项目.war包

rm -rf /save/$PROJECT.war

#启动 tomcat

"$TOMCAT_HOME"/bin/startup.sh

echo "tomcat is starting,please try to access $PROJECT conslone url"

最后点立即构建测试构建及shell脚本发布项目

Linux平台搭建Jenkins+Maven+Shell实现自动化构建部署

构建发布完成,请访问http://目标服务器IP/项目名称

PS:如果系统中禁用了root用户的情况下,请把相应项目名称的文件夹所属主与所属组全部修改为对应的用户名与用户组,否则发布会失败

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这