环境:
如果没有安装相应插件,请自行安装,不在赘述。
1、liunx系统版本:
[root@localhost ~]# rpm -qa | grep centos-release
centos-release-7-4.1708.el7.centos.x86_64
2、maven版本:
mvn -version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T02:33:14+08:00)
Maven home: /usr/local/soft/maven/apache-maven-3.5.4
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: /usr/lib/jvm/jdk1.8.0_191/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-693.el7.x86_64", arch: "amd64", family: "unix"
3、jdk版本:
[root@localhost ~]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
1、下载jenkins
https://www.jenkins.io/download/
2、部署jenkins
将jenkins.war 放入tomcat的webapps后启动,访问,第一次进入Jenkins会让你走几个步骤
- 输入管理员密码,密码可以从页面提示的文件中看到
- 下载默认插件,点击官方推荐的按钮继续往下走
- 设置账号密码和邮箱地址
- 登入
3、安装插件
①、Maven Integration
②、Deploy to container Plugin
③、SSH plugin
在可选择插件中ctrl+f查询,查找时最好使用模糊查询,例如:Maven 、Deploy 。
4、配置全局配置
①、maven的settings.xml在jenkins服务器位置。
②、jdk在jenkins服务器位置。红框勾选去掉。
③、maven 地址,红框勾选去掉。
五、配置工程
如果没有配置maven插件,此项不显示。所以要安装第三步的插件。点击后给部署任务起名后进入配置页面。
①、填写描述、选择源码管理中Subversion。
②、添加svn用户。填写svn用户名和密码, Repository URL填写代码地址。
添加完用户后,可以选择刚才用户。
③、构建触发器和构建环境不用动,
使用shell命令的方式部署war包,
首先、我现在需要部署的服务和jenkins是同一个服务器。所以没有使用远程上传的方式上传war包,jenkins服务器和项目部署服务器不同利用shell和ssh远程上传war在我的博客【jenkins maven svn shell 自动部署】。
https://blog.csdn.net/qq_21190847/article/details/106204372
然后、我的tomcat使用docker部署,所以关闭和启动和在bin目录下./startup.sh不同。
先关闭tomcat、删除war和项目文件夹、拷贝编译好的war到docker映射主机目录下、启动tomcat。
#!/bin/bash
docker stop service9197
rm /usr/local/myTomcat/service9197/bare_service-1.0.war
rm -rf /usr/local/myTomcat/service9197/bare_service-1.0
cp /root/.jenkins/workspace/dt-service/bare-pro/bare_service/target/bare_service-1.0.war /usr/local/myTomcat/service9197
docker start service9197
勾选Run only if build succeeds 最后点击保存
执行任务,查看执行结果
在控制台查看结果
还有一种利用Deploy to container方法
1、首先需要把需要升级的tomcat添加用户,位置tomcat根目录下conf下tomcat-users.xml。在tomcat-users节点内添加如下,用户名admin,密码abc123。role中是授予的权限。
<role rolename="admin"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user name="admin" password="abc123" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />
2、然后在tomcat根目录下webapps\manager\META-INF\context.xml。
或者直接把此代码注释掉。在上传war时拦截放开。如果没有此文件可以忽略此步骤。
然后启动tomcat,点击红框,提示登录,填写用户名密码可以登录说明已经成功。
3.配置任务配置
build之前和shell方法部署相同。
配置war包路径,发布到容器中项目名称,登录tomcat用户名和密码,和svn用户名密码相似。最后保存,发布。此用法是通过tomcat上传war包,所以tomcat服务不能关闭,如果tomcat中已经有发布前的项目正在运行,需要删除正在运行的项目重启服务,如果不删除旧项目重启服务,本次部署的war运行后会造成jvm内存满进而升级失败。删除旧项目重启后相当于清理jvm内存后在升级war 。此后运行步骤和shell方式相同,查看升级结果。