2022
我们一起努力

如何搭建Jenkins + Git + Maven + tomcat + nexus集成环境

如何搭建Jenkins + Git + Maven + tomcat + nexus集成环境,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

实现“自动构建、部署”web应用

1、安装环境

    操作系统:Centos 7.2

    JDK:1.8.x

    Maven:3.5.x

    Git: 1.8.1,自建GitLab平台

    tomcat:8.x
2.第三方安装安装和环境配置
增加hosts解析
JDK、Git、Maven、tomcat在上述2个宿主机器上都需要安装,即jenkins master和slave都需要这些环境。

    1)JDK安装:略;安装后之后,请注意配置JAVA_HOME环境变量。

    2)Maven安装:从apache下载tar.gz压缩包,在合适的目录下解压即可。此后配置M2_HOME环境变量。
                              如果使用私服的Maven中央仓库 nexus,要指定 /usr/server/apache-maven-3.5.0/conf/settings.xml

    3)tomcat安装:略。

    4)Git:安装非常简单,直接执行“yum install git”即可。

    5)如果你的GitLab是自建的内网平台,千万不要忘了在上述2个宿主机器上增加hosts解析,例如:

安装一个tomcat ,其http端口为8082
下载jenkins的war包,并放到tomcat下 http://mirrors.jenkins-ci.org/war/

1)context.xml:增加jenkins环境变量,由tomcat挂载。

  1. <Environment name="JENKINS_HOME" value="/u01/jenkins_home/" type="java.lang.String"/>

  2. <Resources    cachingAllowed="true" cacheMaxSize="200000"/>

“JENKINS_HOME”是jenkins的home目录,通常设定为“磁盘空间较大”的分区,这个目录中将放置maven build的文件,历史部署记录等等,所以将会消耗很大的存储空间
“cacheMaxSize” 指定内存单位K ,如果报内存不够时加

2)tomcat-users.xml:配置jenkins的用户,此后用户可以在jenkins的页面上登录和授权操作,对于jenkins的用户授权,官方提供了很多方式,比如LDAP、基于数据库等等。本实例基于tomcat user的方式,简单易用
添加2个管理员用户,其中admin可以对系统各项配置进行修改,manager可以管理项目、部署等。

  1. <role rolename="manager"/>

  2. <role rolename="admin"/>

  3. <role rolename="manager-gui"/>

  4. <role rolename="manager-script"/>

  5. <role rolename="manager-jmx"/>

  6. <role rolename="admin-gui"/>

  7. <user username="admin" password="xxx" roles="admin,manager-gui,manager-script,manager-jmx,manager-status"/>

  8. <user username="deployer" password="xxx" roles="manager,manager-gui,manager-script,manager-jmx,manager-status"/>

 
3)将jenkins.war放置在webapps目录下,我们此处希望jenkins作为ROOT项目加载,所以删除原有的ROOT项目,并将jenkins.war重命名位ROOT.war,这样在通过http访问jenkins时,不需要加ContextPath了。

4)启动jenkins tomcat:./startup.sh
5)访问“http://192.168.1.194:8082”,然后使用admin用户登录(用户密码参见tomcat-users.xml)。

1.用户权限配置
系统管理–>Configure Global Security
安全域: Jenkins专有数据库
搜索策略:登陆用户可以做任何事
2.mail 配置
系统管理–>系统配置–>Jenkins Location
填写系统管理员地址

系统管理–>系统配置–>邮件通知
SMTP服务器  smtp.126.com
用户默认邮件后缀 @126.com
使用SMTP认证
用户名 system_mail_ul@126.com
密码

3.jdk、git、maven配置
系统管理–>Global Tool Configuration
新增jdk、git、maven路径
/usr/server/jdk1.7.0_80
/usr/server/apache-maven-3.5.0

4.Build与发布
我们接下来创建一个job,这个job将从GitLab上下载源码到本地,然后使用Maven build和打包,并发布到tomcat上。这个过程正是我们常用的
Deploy to container plugin 这个插件,请首先安装;它主要用来将“war”文件“deploy/redeploy”到web容器中,比如tomcat、jboss等。有了这个插件,我们可以在maven
build之后,立即将war发布到tomcat中,而不需要手动操作或者写shell脚本来copy文件。

首先,我们需要准备一个tomcat,用来部署我们的web application,过程略。此tomcat的端口为8080,部署在master宿主机器上。

因为Deploy插件是通过外部(http)方式“deploy/redeploy”,所以需要在tomcat上进行用户授权。编辑tomcat-users.xml,增加如下配置:

  1.     <role rolename="manager"/>

  2.     <role rolename="admin"/>

  3.     <role rolename="manager-gui"/>

  4.     <role rolename="manager-script"/>

  5.     <user username="deployer" password="xxx" roles="manager,manager-gui,manager-script,manager-jmx,manager-status" />

增加一个“deployer”用户,我们可以通过tomcat manager机制来部署war。参见稍后讲解。

触发器实际是不需要的。

下面是我测试的样子

最后配置tomcat容器路径,大功告成,注意

此处tomcatA8为管理用户,需要具备manager-gui,manager-script,manager-jmx,manager-status权限,否则报错

如使用nginx代理,则需要设置最大缓冲大小大于war包大小,否则报错.

报错信息可在构建任务中的Console
Output 菜单下查看

想打包正ROOT.war,有两种方法:
1.修改pom.xml文件中的 改成你想要的名字
2.上图设置中 Context path :   /ROOT

其中“WAR/EAR
files”选项指定war的位置,这个路径是个相对路径,相对于“/home/jenkins_home/workspace/{你的item名称}”,本实例是一个maven多模块项目,且每个module打包的名称都为ROOT.war,这样方便部署。
请管理员指定正确的路径。

 
  Containers中,我们使用了tomcat 7,输入上文我们设定的用户名和密码,指定tomcat
Url,需要注意,既然应用是基于http
manager的方式deploy,那么此tomcat的webapps自带的“manager”项目不能被删除,同时tomcat还需要处于启动状态。(tomcat也可能以为死亡,所以建议在pre
step中加上对tomcat状态的判断,如果tomcat死亡,先执行startup.sh)。

    如果在部署时,报错。请按照如下方式排查:

    1)tomcat是否已经启动。

    2)tomcat-users.xml是否配置正确。

    3)tomcat的版本和“Deploy plugin”中container指定的是否一致。

    4)tomcat下是否已经有ROOT项目,如果有,请删除,然后重启tomcat,此后再使用jenkins发布,因为reploy时会检测旧的ROOT和新的ROOT.war项目的版本相容性,如果不同,则会导致reploy失败。

 构建日志:

[JENKINS] Archiving /u01/jenkins_home/workspace/gkgp/web/pom.xml to com.tudou.gkgp/web/1.0-SNAPSHOT/web-1.0-SNAPSHOT.pom
[JENKINS] Archiving /u01/jenkins_home/workspace/gkgp/web/target/gkgp.war to com.tudou.gkgp/web/1.0-SNAPSHOT/web-1.0-SNAPSHOT.war
[gkgp] $ /bin/sh -xe /home/jenkins/apache-tomcat-8.0.36/temp/hudson7572047694542790795.sh
channel stopped
Deploying /u01/jenkins_home/workspace/gkgp/web/target/gkgp.war to container Tomcat 8.x Remote with context /gkgp  [/u01/jenkins_home/workspace/gkgp/web/target/gkgp.war] is not deployed. Doing a fresh deployment.
  Deploying [/u01/jenkins_home/workspace/gkgp/web/target/gkgp.war]Finished: SUCCESS

—END—

other:   profile

各属性节点的值,用占位符"${属性名}"占位,maven在compile/package时,会根据profile的环境自动替换这些占位符为实际属性值。

默认情况下: 

maven package

将采用默认激活的profile环境来打包,也可以手动指定环境,比如:

maven package -P dev

将自动打包成dev环境的部署包(注:参数P为大写)

实现“自动构建、部署”web应用实现“自动构建、部署”web应用

看完上述内容,你们掌握如何搭建Jenkins + Git + Maven + tomcat + nexus集成环境的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注云行业资讯频道,感谢各位的阅读!

赞(0)
文章名称:《如何搭建Jenkins + Git + Maven + tomcat + nexus集成环境》
文章链接:https://www.fzvps.com/115220.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!