0

我正在为我的 GAE 应用程序设置“QA 环境”。这个 QA 环境将只是我的家庭网络上的一个小型服务器,具有专用的 IP 地址。我正在编写一个 Ant 脚本来从我的 SVN 存储库中检查项目,在我的构建服务器上构建它,然后将它“远程”(通过我的家庭 LAN)部署到 QA 应用服务器。

使用 Tomcat,我只需scp将 Web 存档保存到机器的webapps/目录中,并且由于它可以配置为热部署,这就是我通常需要进行 QA 部署的全部内容。

但是我是 GAE 的新手,所以我不知道如何通过 Ant 实现这样的远程部署。我能想到的最好的(虽然有些令人费解)是:

  1. 像我通常那样在构建服务器上签出并构建 WAR
  2. scpWAR 到 QA 机器上某处的暂存目录;说192.168.1.55:/opt/gae/staging
  3. 在该机器(可能由 Tomcat 或 Jetty 托管)上运行一个轻量级 RESTful Web 服务,以监听客户端访问某个 API,例如http://192.168.1.55:8080/GaeRemoteApi/deploy;当请求处理程序收到对该 URL 的请求时,它会启动一个 shell 命令以将 WAR 复制到正确的目录中,然后执行appcfg.sh -upload以将 WAR 实际部署到我的 QA 应用程序服务器

我很确定我可以在一两天内完成这项工作,但我想知道 GAE 是否提供了更简单(成熟)的解决方案;或者,如果一双新的眼睛能想到更简单的事情。提前致谢!

4

2 回答 2

1

运行开发服务器?

https://developers.google.com/appengine/docs/java/tools/devserver

于 2012-10-12T00:51:34.450 回答
1

我认为你应该保持简单:

由于您使用的是 Ubuntu,因此您可以编写一个 shell 脚本,该脚本将:

  1. ssh 到远程服务器
    • 停止当前的 gae dev appserver
    • 重命名现有的war目录
  2. 将新部署 scp 到 QA 服务器的 war 目录
  3. ssh 到 QA 服务器并启动 gae dev appserver

您可以使用以下命令从 ant 调用 shell 脚本:http: //sumedha.blogspot.com.au/2008/06/how-to-call-shell-script-from-ant.html

停止开发应用服务器:

killall -e ./appengine-java-sdk/bin/dev_appserver.sh

运行开发应用服务器:

nohup ./appengine-java-sdk/bin/dev_appserver.sh you/war/directory &
于 2012-10-12T01:01:36.917 回答