插件安装
在jenkins“系统管理”的“管理插件”中安装“Deploy to container Plugin”
修改Tomcat管理用户配置
Deploy to container Plugin需要通过属于manager-script组的Tomcat管理用户将war包发布到Tomcat服务器上,默认没有这样的用户,需要在TOMCAT_HOME/conf/tomcat-users.xml添加manager-script组和相应的用户,增加如下两行:
<role rolename="manager-script"/>
<user username="deploy-tomcat" password="123456" roles="manager-script"/>
注:配置好后需要重启Tomcat才能生效
Jenkins中配置Job
在“构建后操作”中增加“Deploy war/ear to container”,配置如下图:
参数说明
WAR/EAR files
相对于工作空间的相对路径,如:**/*.war,source/target/*.war或source/target/yiqifa-adcenter-web.war,建议以“**/*.war”形式填写。
Context path
应用在Tomcat中的部署路径,如上图,部署后可以通过http://localhost:8080/test来访问部署的应用
Credentials
在“修改Tomcat管理用户配置”中配置好的用户名和密码;添加到jenkins凭据里
Tomcat URL
运程Tomcat的访问路径,如上图中的http://localhost:8080,插件通过这个地址将应用的war/ear包上传到Tomcat的webapps目录下
Add Container
在这里可以继续增加其他的容器,这样就可以实现将应用同时部署到不同的容器中。
注意事项
- 运行Job进行部署前要先启动运程机上的WEB容器,插件需要通过容器提供的接口将war包发布到容器下
- 如果遇到“Deployed application at context path /xxx but context failed to start”这样的异常请到远程机的WEB容器下查看日志
- 如果遇到“Connection refused”的异常请检查远程机的容器是否启动、端口是否设置正常,不同的容器配置方式不一样,请参考相应容器的配置文档
- 目标服务器的manager/html页面访问不到,是做了ip限制,需要修改在manager项目里面的meta-inf里面context.xml将127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1改为^.*$则是所有ip都可以访问,当然对于这里来说只需要jenkins所在服务器能访问就行了.