2019独角兽企业重金招聘Python工程师标准>>>

1.概要说明

为了开发人员和测试人员的解耦,让开发和测试流程更加便捷,所以采用jenkins+git+maven这套可持续性集成方案。

下图(图1)是设计图:

图1

2.准备工作

  • centos6+
  • jdk-8u191-linux-x64.tar.gz
  • apache-maven-3.5.0-bin.tar.gz
  • apache-tomcat-8.5.35.tar.gz
  • jenkins.war2.150.1

服务器a.b.c的系统均是centos6.5、jdk用的1.8、服务器B的maven版本是3.5(用于jenkins构建项目时打包)、服务器B部署的jenkins是最新版本的jenkins2.150.X(X表示小版本号)。

3.具体实施

第一步:在服务器上安装jdk8,需要在profile加入全局环境变量(vim /etc/profile),当然也可以加针对用户的环境变量(vim ~/profile)两者配置一项,我采用的是全局环境变量

在服务器B上需要安装maven同样需要配置环境变量同时需要修改maven的setting.xml配置仓库地址和镜像地址(不懂可以自行百度)。在服务器C上安装tomcat,适当的修改tomcat的service.xml的配置文件(不懂可以自行百度),可以修改服务默认端口等,同时查看服务器的防火墙中是否开放了对应的端口,以免服务无法访问(vim  /etc/sysconfig/iptables按照22的格式添加端口然后重启iptables即可,防火墙不会配置可以自行学习,简单的。)。在服务器B上同样步骤配置tomcat,配置好后,执行startup.sh文件测试,若能够正常启动,将tomcat目录下的webapp文件夹下的内容清空,将jenkins.war放入改目录下,启动jenkins,然后访问http://ip:port/jenkins/ 若显示界面则启动成功,进入界面先要安装一些插件,插件不会安装可自行百度,教程很多,顺便说一句,jenkins最主要的就是灵活运用各种插件。

#java
export JAVA_HOME=/usr/java/jdk1.8.0_191
export JRE_HOME=/usr/java/jdk1.8.0_191/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
# maven
export MAVEN_HOME=/usr/maven/apache-maven-3.5.0
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin

第二步:配置服务器之间的ssh通讯协议,首先服务器B需要从服务器A获取代码,那么需要在服务器B上生成ssh密钥对(可以参考下面的博客https://blog.csdn.net/yueludanfeng/article/details/79330276),我默认你已经会使用github了,若不会先学习一下在官网上简单的注册个账号即可开通github,在个人的settings选项下配置ssh key将服务器B上的ssh密钥的公钥配置上去即可。服务器B需要通过ssh协议登陆服务器C从而传输构建好的war包到指定的tomcat目录下并且执行一段启动脚本。所以服务器B需要能够免密登陆到服务器C,那么服务器C需要将服务器B产生的公钥追加到authorized_keys文件中,authorized_keys文件在~/.ssh目录下没有需要自己新建一个。具体流程不会的可以参考博客(https://blog.csdn.net/chichuduxing/article/details/68491134),到目前为止,准备工作已经做完,jenkins可以正常启动了,三台服务器之间可以正常通讯了,剩下的就是具体怎么配置jenkins了。

第三步:配置jenkins,jenkins需要安装一些有关maven与ssh的插件,Maven Integration plugin、Publish Over SSH第一个插件是用来创建maven项目的,第二个插件是用来配置ssh协议的。

图2

如图2需要在系统管理里的全局工具中配置maven、git、jdk三个东西。

配置完后保存,返回系统管理页面打开系统配置,需要在里面配置一下ssh。

第一栏可以不配置,Path to Key配置服务器B私钥的地址,key配置服务器B私钥的内容,然后创建一个ssh server 填写服务器C的信息hostName配置ip, username配置登陆名,路径写tomcat的webapp路径。配置完成后可以开始创建maven项目了。

第四步:创建一个maven风格的项目,名字什么的自己定义即可,创建完成后配置该项目需要配置的点有:general、Source Code Management、Build Triggers、Build、Post Steps

如上图:general配置个名字即可自定、Source Code Management需要配置git,这里注意的是需要新建一个git的钥匙串,Build Triggers照着勾选即可,Build需要配置maven命令clean package -Dmaven.test.skip=true,Post Steps这个比较重要需要配置项目发布的一些信息,和发布后执行的一个脚本,用来远程控制服务器C启动tomcat,脚本内容如下:

#!/bin/sh
TOMCAT_PATH=/Users/XXX/software/tomcat8.5.24-jenkins/bin
echo "TOMCAT_PATH is $TOMCAT_PATH"
PID=`(ps -ef | grep tomcat | grep -v "grep") | awk '{print $2}'`
if [ "$PID" = "" ]
then
    echo "tomcat is not run!"
    $TOMCAT_PATH/startup.sh
else
    echo "stop tomcat!"
    kill -9 $PID
    PID1=`(ps -ef | grep tomcat | grep -v "grep") | awk '{print $2}'`
    if [ "$PID1" = "" ]
        then
            echo "restart tomcat!"
            $TOMCAT_PATH/startup.sh
        else
            echo "restart fail!"
    fi
fi

以上亲自部署可以实施,有不足之处请大家包含以及指正,谢谢。

转载于:https://my.oschina.net/Spider001/blog/2992892

jenkins+git+maven搭建项目自动化持续集成相关推荐

  1. 【DevOps】Jenkins+Git+Gitlab+Sonar+Nexus实现持续集成

    文章目录 什么是持续集成?CI/CD指的是什么? 如何实现持续集成 一.筹备工作,CentOS 7.6系统 1.安装JDK,配置环境变量 2.Maven下载 3.Git安装 4.GitLab安装 5. ...

  2. jenkins maven testng selenium自动化持续集成

    准备环境 首先我们新建一个maven的工程,并且在pom.xml中配置好我们依赖的一些jar包 <dependencies><dependency><groupId> ...

  3. 基于Jenkins+git+gradle+pgyer的android持续集成

    前段时间搞了下CI持续集成工具,这里总结一下:供需要的朋友参考,错误之处还请指出,与君共勉. 主要步骤如下: 1. jenkins 安装配置 2.打包环境配置 3.系统配置及插件管理 4.新建项目.b ...

  4. GitHub之GitHub Actions的项目自动化持续集成和部署

    一.基本概念 GitHub Actions 是一个由事件驱动的自动化平台,通过设置触发条件,在某些事件发生时自动运行指定的操作.换言之,GitHub Actions 不仅允许开发人员在平台上托管代码, ...

  5. Jenkins实现SVN+Maven+Java项目的持续集成

    Jenkins 2.46.1 Centos 7.3 JDK 7 安装jdk/maven/svn 在Jenkins所在的Linux机器安装jdk和maven,步骤就不说了,下面是环境变量: export ...

  6. Jenkins+Jmeter+Gitlab+Ant接口自动化持续集成构建(环境搭建配置)

    第一步:环境搭建: 准备工作: Java及jdk配置.jmeter安装配置.Jenkins搭建完成.安装Ant 一.JDK配置 JDK配置请百度自行配置 二.Jmeter安装配置 1.把 apache ...

  7. jenkins git maven tomat 项目拉取编译自动部署(操作详细)

    文章目录 1.项目说明 2.tomcat 配置 (1)tomcat-users.xml 配置用户 (2)context.xml 去掉访问限制 (3)解决 war包过大无法上传 (4)访问host-ma ...

  8. git maven 一键部署_Jenkins Git Maven搭建自动化部署项目环境 邮件通知

    简介 折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.com/j ...

  9. CI/CD——构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台

    构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台 CI/CD是什么? 持续集成(CI)/持续交付(CD)的优势 自动化部署流程图 Git Github Gi ...

最新文章

  1. iOS15.4 来袭:新增“男妈妈”表情及口罩面容解锁、AirTags 反跟踪等新功能
  2. android 关于多任务下载问题
  3. 【深度学习】最新「深度学习社区发现」综述论文,174篇文献概述六大类方法(含Github资源)...
  4. java开发和测试的不同_一些基础的面试的java知识,普及下。开发和测试都用得到。...
  5. 增长是一切企业问题解决的入口
  6. SQL实战之获取所有部门当前manager当前的薪水
  7. linux快速mysql5.7_Linux下安装MySQL 5.7
  8. 常用sql语句及案例(oracle)
  9. 发短信属于长连接还是短连接_通过链接发送短信
  10. 史上最全:Mac搭建Airtest IDE +IOS 测试环境
  11. 云集网上各种解决win10锁屏壁纸不能播放幻灯片的方法
  12. C++中圆周率Π的几种表示方法arccos(-1), 2arcsin(1), 4arctan(1)的用法
  13. CSS的class常用命名规则
  14. 拼接模型坐标系的理解(五)
  15. VUE 自定义子组件v-bind及v-on指令的大小写问题
  16. 标准化、归一化、规范化区别
  17. openEuler@树莓派
  18. 论文汇网站第三期改版完成
  19. 【商业分析 01】商业分析网站汇总
  20. Eclipse中查找文件快捷键

热门文章

  1. python怎么写测试脚本语言_手把手带你,用Python写一个Monkey自动化测试脚本!!!...
  2. java 报500该怎么解决_关于servlet500错误 应该怎么解决
  3. golang 关闭gc 并手动gc_Golang 大杀器之跟踪剖析 trace
  4. mysql命令窗口出现问号_mysql在控制台里出现中文问号问题
  5. 教你如何用python表白_情人节来了,教你个用 Python 表白的技巧
  6. rest 接口怎么传list_如何设计一个优雅的RESTFUL的接口
  7. python十进制小数转二进制_python十进制和二进制的转换方法(含浮点数)
  8. python实现STM32单片机通信
  9. 【caffe解读】 caffe从数学公式到代码实现3-shape相关类
  10. 全球及中国小型风电产业未来前景展望及发展形势分析报告2021-2027年