一尘不染

Tomcat Manager远程部署脚本

tomcat

我正在编写一个shell脚本,以使用tomcat管理器自动部署/取消部署。

按照http://tomcat.apache.org/tomcat-6.0-doc/manager-
howto.html#Deploy_A_New_Application_Remotely上的说明,我将curl用于部署

curl --anyauth -u username:pwd -d path=/something -d war=file:target/someWar.war https://someurl.com/manager/deploy

我得到的响应是此URL不支持HTTP方法POST。

所以我将卷曲改为-G

curl --anyauth -u username:pwd -G -d path=/something -d war=file:target/someWar.war https://someurl.com/manager/deploy

我收到失败的响应-
无法在上下文路径/某处部署应用程序,并且似乎正在服务器而不是我的机器上本地查找文件。有些插件可以进行远程部署,而无需在文件上添加scp,所以我想知道自己缺少什么。

我目前没有主意(在tomcat Manager配置页面上没有看到其他任何选项)。


阅读 328

收藏
2020-06-16

共1个答案

一尘不染

这种方法对我在Tomcat 6上有效(请参见Tomcat的jevelopers答案):

curl --upload-file <path to warfile> "http://<tomcat username>:<tomcat password>@<hostname>:<port>/manager/deploy?path=/<context>&update=true"

例:

curl --upload-file target\debug.war "http://tomcat:tomcat@localhost:8088/manager/deploy?path=/debug&update=true"

非常容易。输出是这样的:

OK - Undeployed application at context path /debug
OK - Deployed application at context path /debug
2020-06-16