【问题标题】:Google App Engine: How to perform a remote deploy to dev app server?Google App Engine:如何执行远程部署到开发应用服务器?
【发布时间】:2012-10-12 00:47:26
【问题描述】:

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

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

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

  1. 像往常一样在构建服务器上签出并构建 WAR
  2. scp WAR 到 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 是否提供了更简单(成熟)的解决方案;或者,如果一双新的眼睛能想到更简单的事情。提前致谢!

【问题讨论】:

  • 您可能想提及您的开发和应用服务器所在的平台。是linux吗?
  • 好点@chees - Ubuntu Server 12.04

标签: google-app-engine deployment ant


【解决方案1】:

我认为你应该保持简单:

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

  1. ssh 到远程服务器
    • 停止当前的 gae 开发应用服务器
    • 重命名现有的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 &

【讨论】:

    【解决方案2】:

    【讨论】:

    • 感谢@dragonx (+1) - 但是如何从构建服务器远程启动开发服务器?我不想为 QA 环境热部署;我想要一个完整的启动和关闭来观察整个应用生命周期。
    • 要热部署,只需替换WAR目录即可。否则按照@chees 所说的做,并使用 ssh 杀死 devserver 并重新启动它。除了我认为你可以删除现有的战争目录而不是重命名它。
    • 是的,重命名只是以防万一你想要一些关于你的 UAT 中运行的历史的历史
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 2016-11-06
    • 2020-01-22
    相关资源
    最近更新 更多