我有一个Lift应用程序,它被打包成一个WAR存档,必须在Jetty下部署。但是,我希望能够自动执行一些任务:
我正在使用SBT,我不知道这将如何发挥木偶或类似的东西。你会怎么做?
发布于 2013-03-19 14:43:13
我一直在看这个问题,希望有人能想出一个聪明的答案。既然他们没有,我想我会在这件事上融入我自己的感情。
据我所知,没有任何工具可以自动化这些类型的部署,我认为这是因为有太多不同的场景需要处理。至少,你有:
我想1和2是最容易找到通用工具的,如果这是我唯一需要处理的情况,我可能会把Jenkins和应用一起部署。当发生更改时,可以很容易地将其配置为从git分支中提取,生成代码并重新启动Jetty。但是,当您达到3&4时,我认为所涉及的不同工具的数量以及协调它们的需要已经排除了任何类型的标准解决方案。我不认为这仅仅是Java/Scala世界中的一个问题,因为我已经看到Github的人在他们为管理Rails应用程序的部署而构建的定制工具上编写了一些文章。
至于木偶,尽管我从未使用过它,但它似乎是这类过程的有用工具。您将需要某种类型的中央协调器来处理集群,我相信木偶可以在这方面提供帮助。
发布于 2013-04-29 16:27:07
您可以使用我们的产品BuildMaster来完成所有这些事情。我注意到您提到了Puppet,注意这个工具是为基础设施自动化而设计的,而不是用于软件部署和交付。
在DevOps空间中工作,我们发现通过团队协作保持软件和基础设施部署的正交性和同步性是很重要的(开发人员不是操作人员,反之亦然)。
为了说明你的要点:
部署到多个服务器
在创建自动部署计划时,可以指定服务器组,并在必要时从组中添加/删除服务器。
测试阶段
在生产之前,您可以使用任意数量的测试环境来设置工作流,并且这些工作流可以包括自动检查(即升级要求),以便在允许将构建提升到下一个环境之前通过测试。内置测试是为了确保传递单元测试,但您可以为任何命令行工具输出指定它们,甚至可以编写自定义扩展。
码头部署
复制WAR文件就像使用SSH代理将工件部署到服务器一样简单。
发布于 2013-03-20 22:16:05
我也看过这个问题。
实际上,你也有同样的感觉:你不能考虑所有可能的环境,框架只允许你选择你想要的。因此,使用任何愉快的部署工具,只需使用它。
(当然,SBT允许您进行测试,防止打包,还有许多部署工具具有战争和抛弃知识。)
https://stackoverflow.com/questions/15466239
复制相似问题