Jenkins配置打包后自动部署至Tomcat服务器

PunkLu 2020年03月04日 170次浏览
Jenkins配置打包后自动部署至Tomcat服务器

安装Jenkins自动部署插件

如下几张图所示,打开Jenkins管理中心,安装Deploy war/ear to a container插件。

安装插件1

安装插件2

安装插件3

如上图所示,在插件管理(Manage Plugin)里边找到Available项,再找到Deploy war/ear to a container插件安装即可。

配置Tomcat

首先在服务器上配置Tomcat。需要注意的是配置完Tomcat后,不要删除tomcat的webapps下由Tomcat原生提供的下面几个文件夹,后续通过插件远程部署时需要用到。

  1. docs
  2. examples
  3. host-manager
  4. manager
  5. ROOT
  6. temp

添加Tomcat远程管理用户

在服务器上的tomcat文件夹下执行以下命令,为Tomcat添加远程管理账户。

cd conf/
vi tomcat-users.xml

标签内添加以下内容:

<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="123456" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" />

保存退出。

配置Tomcat可远程访问

部分版本的Tomcat中,默认禁止远程用户管理Tomcat。还需要进入webapps/manager/META-INF/目录。编辑context.xml。注释掉以下内容:

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

测试远程管理用户

使用以下命令启动tomcat:

./bin/startup.sh

在浏览器中访问该Tomcat主页(ip:port),如果Tomcat正常启动可以看到Tomcat管理页面:

配置tomcat1

点击左下角Managing Tomcat中的manager webapp,在弹出的认证框中输入上面tomcat-users.xml中配置的远程管理用户和密码后,可以进入以下页面则说明远程管理账户添加成功。

配置tomcat2

配置Tomcat资源锁定策略

在服务器的Tomcat目录下,执行以下命令,配置Tomcat的资源锁定和Jar包锁定策略。

cd conf/
vi context.xml

将以下代码

<Context>

更改为:

<Context antiResourceLocking="true" antiJARLocking="true">

配置Jenkins项目自动部署

点击进入一个Jenkins项目,点击左侧Configure按钮进入该项目的管理页面。如下图所示:

配置自动部署1

找到Post-build Actions选项,点击左下角的Add post-build action按钮,选择之前安装的Deploy war/ear to a container插件。如下图所示:

配置自动部署2

在弹出的框中输入相关配置信息,如下图:

配置自动部署3

其中,WAR/EAR files的值为要部署到远程服务器的项目包。输入**/*.war即可,代表Jenkins打出的war包。Tomcat URL即为远程Tomcat服务器的地址(ip:port)。

还需要配置下Tomcat用户,以确保Jenkins插件具有权限连接Tomcat。点击上图中的Add按钮,在弹出的输入框中输入之前配置的Tomcat远程管理的用户名及密码即可(其他选项按照默认值即可)。如下图所示:

配置自动部署4

然后保存配置,下次Build项目的时候即可在Build完成之后自动将打出的war包部署到配置好的Tomcat中。