首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我能在多台服务器上协调Chef部署资源的回滚吗?

我能在多台服务器上协调Chef部署资源的回滚吗?
EN

Stack Overflow用户
提问于 2013-01-08 14:28:50
回答 2查看 1.6K关注 0票数 3

我将从Capistrano转到Chef,部署Rails应用程序(使用修订),而关于最佳实践(或通用实践)的问题在我看来并不清楚。我在谷歌上发现的不多。

使用Capistrano和"push“模型,在跨多个服务器部署应用程序时,很容易识别部署失败的时间,并同时在所有服务器上回滚部署。Capistrano还在每个应用服务器上设置了一个维护页面,除非我已经成功地部署到所有服务器或回滚部署,否则不会将该维护页面删除。

使用Chef和“拉”模型,每个服务器可能在一个稍微不同的时间获取其更新。我可能会在数据库服务器更新应用程序代码和运行数据库迁移时比应用服务器早几分钟。因此,我确实没有一种很好的方法来识别故障,并确保构建回滚到最后一个成功部署的版本(在所有服务器上)。

我知道我在这里有一些选择:

  1. 别把主厨和客户都抹黑了。每晚或每小时用cron运行。(如果有些服务器成功了,而且只有一台遇到了问题,我仍然无法回滚到我所有的服务器上。)
  2. 别把主厨和客户都抹黑了。不要使用deploy_revision。通过刀ssh卡斯特拉诺-厨师运行它。(我现在回到“推”模式,而不是“拉”模式,这是主厨吸引力的一部分。)
  3. 使主厨-客户化,并写自定义的食谱,互相交谈。(对此并不热心。)
  4. 放松点。不必为那事担心了。让错误发生,然后修复它们。(这里也不太兴奋。)

我可以开始构建其中的任何一个,但在我投入大量时间进行构建之前,我希望了解一下在实地进行大规模部署的方法是什么。你做了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-09 05:56:18

Pull适合于解决组态漂移问题。对于按需部署(以及潜在的回滚),push更好。看看这些(我还没用过):

https://github.com/etsy/deployinator

http://www.rackspace.com/blog/rackspace-open-sources-dreadnot/

票数 3
EN

Stack Overflow用户

发布于 2013-03-01 20:02:56

我通过厨师的deploy_revision策略部署了ROR应用程序,并取得了一些成功。要克服拉策略的定时控制限制,最简单的方法是编写一个可以归结为:

  • 停止主厨-客户端(以确保守护进程不处理事务)
  • 手动运行厨师-客户端(这也将重新启动守护进程)

或者,如果您很懒,只需运行chef-client,而不必担心守护进程。

然后使用knife-ssh在适用的节点上执行这些命令。最终的结果是,所有与部署相关的配置都由厨师管理,但您可以根据需要启动部署。

为了获得额外的积分,将所有这些都打包到Jenkins任务中。您需要将jenks配置为主厨客户端,并在应用程序的项目中进行“部署到暂存”任务。现在,您可以单击以运行该任务,您的非主厨的队友可以轻松部署。为了获得更多的奖励,在成功的构建之后,设置jenkins来自动部署!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14217134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档