前言

      可能很多小伙伴们都知道,在一般互联企业初期大多数都是采用手工打包上传与发布的方式进行代码发布,常见就是利用打包工具手工打包,上传到WEB服务器,备份原代码文件,发布新的代码,重启服务和检测是否发布成功;

  随着时间的推移,WEB集群数量越来越多,这种手工方式操作会大大降低生产效率,因此,一种叫“持续集成”东东就推行开来了,至于啥叫“持续集成”请各位自行百度或Google.

 今天,民工哥给各位小伙伴说一说“持续集成”当中的一个小部分:自动打包与发布代码的功能,同样也是生产环境常用的。

安装JDK、Tomcat环境

安装jdk、tomcat环境

[root@centos6 ~]# tar zxf jdk-8u111-linux-x64.tar.gz -C /usr/local/

[root@centos6 ~]# tar zxf apache-tomcat-8.5.9.tar.gz -C /usr/local/

[root@centos6 local]# export JAVA_HOME=/usr/local/jdk1.8.0_111

[root@centos6 local]# export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

[root@centos6 local]# export PATH=$JAVA_HOME/bin:$PATH

[root@centos6 local]# export CATALINA_HOME=/usr/local/apache-tomcat-8.5.9

[root@centos6 local]# source /etc/profile

[root@centos6 local]# java -version

java version "1.8.0_111"

Java(TM) SE Runtime Environment (build 1.8.0_111-b14)

Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

安装配置Jenkins

上官网下载安装包

[root@centos6 ~]# wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

[root@centos6 ~]#cp jenkins.war /usr/local/apache-tomcat-8.5.9/webapps/

[root@centos6 webapps]#../bin/startup.sh &

登陆WEB界面进行相关配置

提示输入密码

可以在下面的文件中找到初始密码

[root@centos6 webapps]# cat /root/.jenkins/secrets/initialAdminPassword

0d647a32992149b3b43f77e4bda93809

输入密码,跳转到下一个界面

然后选择安装插件,下一步即可

安装完成

创建用户与密码

完成后就可以进入首页界面进行配置与管理了

接下来安装下后续需要插件

通过系统管理—管理插件—安装maven插件


安装SVN插件

安装Deploy to container Plugin插件

安装配置Maven

官网下载软件

wget http://apache.fayea.com/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

tar zxf apache-maven-3.3.9-bin.tar.gz –C /usr/local/

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

配置环境变量

echo 'export MAVEN_HOME=/usr/local/maven-3.3.9' >> /etc/profile

echo 'export PATH=$PATH:$MAVEN_HOME/bin' >> /etc/profile

source /etc/profile

检测是否安装完成

[root@centos6 ~]# mvn -version

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)

Maven home: /usr/local/maven-3.3.9

Java version: 1.8.0_111, vendor: Oracle Corporation

Java home: /usr/local/jdk1.8.0_111/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux", version: "2.6.32-642.el6.x86_64", arch: "amd64", family: "unix"

在Jenkins上配置maven

SVN的配置同上


创建Job

接下我们一同来创建一个JOB来完成自动化打包与代码发布的工程

开始创建一个任务或项目

输入项目名称,选择构建一个maven项目

配置代码库SVN地址,注意此URL必须要有访问权限

如果没有可选用户就需要创建一个

bulid这里的pom.xml文件是由开发人员提供的,无此文件无法完成自动打包

Post Steps这里我们要使用一个自动化发布的脚本

完成配置后点保存

在首页就可以看到刚刚创建的JOB,点立即构建,然后在控制台看输出信息

可以看到出现构建成功的字样,同时也看代码已打包完成,目录如下:

/root/.jenkins/workapace/JAVA/target/spring-mvc.war


测试访问

完成上述一系列动作后,接下来我们测试下是否已完成

浏览器输入http://192.168.4.254:80801/spring-mvc

接下来我们修改下首页文件的内容,重新构建一次,然后再访问检测


发现已实现自动打包与代码发布功能

自动化脚本

[root@centos scripts]# cat auto_push.sh

#!/bin/sh

################################################

## create by mingongge at 2017-07-09

## this scripts is for auto push code to WEB server

## 微信公众号:友侃有笑(youkanyouxiao)

################################################

#stop server

/usr/local/tomcat/bin/shutdown.sh

TPID=`ps -ef|grep tomcat|grep -v grep|awk '{print $2}'`

TIME=`date +%F`

INSTALLDIR=/usr/local/tomcat/webapps/

 

if [ $TPID =="" ];then

   echo "tomcat stop sucessfully"

else

   kill -9 $TPID

fi

#push code to server and start server

cd $INSTALLDIR

\cp -ar /root/.jenkins/workspace/JAVA/target/*.war $INSTALLDIR

/usr/local/tomcat/bin/startup.sh

RESULT=`netstat -lntup|grep 8081|wc -l`

if [ $RESULT -eq 1 ];then

   echo "tomcat start sucessfull"

else

   /usr/local/tomcat/bin/startup.sh

Fi

没有完美的脚本,只有暂时实现功能的脚本!!!!



©著作权归作者所有:来自51CTO博客作者mob604756ef35df的原创作品,如需转载,请注明出处,否则将追究法律责任

每一份赞赏源于懂得

赞赏

0人进行了赞赏支持

更多相关文章

  1. 苹果Mac重复文件清理工具:Duplicate File Finder Pro
  2. Apache服务的反向代理及负载均衡配置
  3. iMovie 剪辑中如何更改片段速度?
  4. LNMP(Linux、Nginx、MySQL、PHP)安装部署
  5. 学python入门需要什么基础?
  6. Centos7 安装mysql-8.0.22
  7. Nginx架构详解:nginx 的安装和配置
  8. 预测UI设计师未来发展方向
  9. 高效、易用、功能强大的 api 管理平台

随机推荐

  1. Android中实现短信发送的一种方式
  2. Understanding Android's LayoutInflater
  3. Android开发环境构建
  4. android之sql例子
  5. Android 数据库操作 创建 添加 删除 查询
  6. android onTouch()与onTouchEvent()的区
  7. Android友盟多渠道打包_Gradle配置
  8. android使用CheckedTextView搭配listview
  9. 图片压缩保存读取操作
  10. ProgressBar播放动画