我正在尝试在CHEF上的食谱安装的Tomcat 7上部署War文件。 但是,我无法在任何论坛上找到我的问题的单一答案。我不知道该怎么做!我正在使用Ubuntu服务器12.10。 我正在使用的食谱是https://github.com/solarvm/tomcat7-cookbook
答案 0 :(得分:2)
简单的方法是使用service
资源来停止Tomcat,使用bash
资源或文件资源来复制WAR文件,然后使用service
资源再次启动Tomcat。
您尝试使用的那本食谱不会部署WAR文件。但是我找到了这个 - https://github.com/poise/application_java - 可以完成这项任务。
对于它的价值,我认为你也可以找到更好的Tomcat安装食谱。首先,Opscode社区食谱site上有一个可以处理Tomcat 7的“tomcat”食谱。
(提示:不要只使用您在Google上找到的第一本食谱。进行Github搜索,并尝试评估食谱的功能和质量)
答案 1 :(得分:2)
您是否已经找到$ tomcat / webapps /文件夹?
执行手动热部署和更新的步骤。为避免可能的冲突,您应该执行临时的 mywebapp.war.zip 文件名技巧。我多年来一直在linux和windows中使用过。
http://localhost:8080/myapp/
网址使用覆盖技巧更新现有的Web应用程序。
http://localhost:8080/myapp/
网址或使用删除复制技巧更新现有的Web应用程序。
http://localhost:8080/myapp/
网址临时 war.zip 文件名的原因是确保文件在Tomcat触及之前完全复制到目标文件夹。将大文件直接复制到.war文件名可能会触发Tomcat读取halfsized文件内容。
答案 2 :(得分:0)
在主厨中执行此操作时要记住的一个非常重要的部分是使用警戒条件,以免主厨在每次运行时都继续部署文件。 上面说明的步骤很好,但是当您在Chef中编写代码时,除非有保护条件,否则它将在每次运行和部署时继续复制文件。
以下面的情况为例,厨师将在每次运行中执行此操作。
# Extract
execute "tar" do
user "#{tc7user}"
group "#{tc7group}"
installation_dir = "#{tc7target}"
cwd installation_dir
command "tar zxf /tmp/#{tc7tarball}"
action :run
end
要防止Chef在每次运行时都执行,请使用creates
属性,该属性的参数为所创建文件的完整路径。下一次厨师运行将看到该文件已创建,并将跳过该文件。