我想移动一个我必须使用beantalk的应用程序。不过,我希望有一种简单的自动化方式来推广新版本。beantalk 中的控制台界面很好:我可以获取war 文件并上传它。但是,如果我可以运行一个 Jenkins 作业并在它完成构建 war 文件时部署它,那就太好了。
我在这里找到了一个关于对 beanstalk 实例执行 ssh 的线程。但可能还有更多,因为 Beanstalk 可能是一个集群,其中有一个想要成为部署管理器的主节点。
值得做还是我应该接受上传页面?
我想移动一个我必须使用beantalk的应用程序。不过,我希望有一种简单的自动化方式来推广新版本。beantalk 中的控制台界面很好:我可以获取war 文件并上传它。但是,如果我可以运行一个 Jenkins 作业并在它完成构建 war 文件时部署它,那就太好了。
我在这里找到了一个关于对 beanstalk 实例执行 ssh 的线程。但可能还有更多,因为 Beanstalk 可能是一个集群,其中有一个想要成为部署管理器的主节点。
值得做还是我应该接受上传页面?
如果您使用 Maven 进行构建,我编写了一个插件来自动化 beanstalk 和 Elastic MapReduce 部署:
http://beanstalker.ingenieux.com.br/
我正在寻找测试人员!:)
Afaik beanstalk 有一个 Web 界面,因此您可以创建一个 selenium 脚本来为您上传它。不过,那将是一个黑客攻击。
通过 ssh 上传,这可能是一个不错的选择。beanstalk 还有一个 API (http://aws.typepad.com/aws/2011/01/aws-beanstalk-apis-and-command-line-tools.html),您可以轻松地从脚本中使用,然后从哈德逊
如果您使用 Maven 构建,您可以让构建执行部署调用,作为成功构建(包括单元测试)后的 Maven 部署阶段的一部分。
我也没有设法找到一个 Jenkins 插件来做到这一点。
一个好的第一步是 Luca 的 Beanstalk 上传脚本来构建 Jenkins 插件: https ://github.com/blanq/beanstalk-upload
您可以尝试jcabi-beanstalk-maven-plugin ,它通过CNAME swap自动部署。这是一个实验性插件,特别关注这个特定的部署策略。
仅供参考:我为此发布了一个插件:
https://wiki.jenkins-ci.org/display/JENKINS/AWSEB+Deployment+Plugin
你可以使用可汗学院的开源 jenkins ec-2 插件。 https://github.com/Khan?page=2