【问题标题】:Keep log of capistrano deployments记录 capistrano 部署
【发布时间】:2009-08-03 21:27:34
【问题描述】:

有没有办法记录每次通过 capistrano 完成部署时的日志(本地或存储在远程服务器上)?记录过去任何给定时间正在运行的修订是非常有用的。

我知道部署过程会在发布目录中留下最近 10 次部署的部署文件,但最好保留更多历史记录并以平面文件的形式访问它。

【问题讨论】:

    标签: ruby-on-rails capistrano


    【解决方案1】:

    capistrano 设置了一些有用的变量,一个名为 latest_revision 的变量可以转储到文件中。

    task :mark_revision do
      log = "#{deploy_to}/revisions.log"
      run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
      "echo #{latest_revision} >> #{log};"
    end
    

    【讨论】:

    • capistrano 3 似乎在部署时为您创建了一个revisons.log
    【解决方案2】:

    没有内置功能,因此其他答案可以完美运行;我可能会说你应该以某种方式将它附加到默认执行链,我会推荐类似

    after :deploy, :mark_revision
    

    更好的恕我直言:

    after :deploy do
        log = "#{deploy_to}/revisions.log"
        run "(test -e #{log} || touch #{log} && chmod 666 #{log}) && " +
        "echo #{latest_revision} >> #{log};"
    end
    

    我已经打开它作为讨论 Capistrano 的错误跟踪器的票,也许我们会在核心中实现一些东西以保持更好的日志;这无疑是一个我们严重忽视的好问题!

    Peritor Labs 的“Webistrano”做了类似的事情,通过保持数据库驱动的 Web 前端,这允许您记录您喜欢的任何内容,并将部署依赖项从开发人员机器转移到更中心的地方;人们经常在他们的 CI 服务器或存储库主机上使用 Webistrano(如果他们是自托管的)。有关他们 Trac 的更多信息:http://labs.peritor.com/webistrano

    漏洞在这里:https://capistrano.lighthouseapp.com/projects/8716-capistrano/tickets/98-log-deployments

    【讨论】:

      猜你喜欢
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      相关资源
      最近更新 更多