Capistrano 入门
第8章 deploy:rollback 与 deploy:cleanup
这章是关于 deploy:rollback 任务和 deploy:cleanup 任务的介绍。
执行 deploy:update 任务时,Capistrano 能从 Subversion 等库中获取源代码,详细地查看的话,还有很多东西。
- 在
releases目录下创建一个基于当前时刻,以 YYmmddHHMMSS 为形式的子目录,在那里可获取最新的源代码。 - 在子目录创建一个到目录
shared/log的符号链接。 - 创建一个从
current目录到子目录的符号链接。
总之,Capistrano 能取得以前获取过的源代码,并根据符号链接的改建运行最新版。
deploy:rollback 这个任务的作用是返回前一个源代码并重启应用程序。具体来说就是将 current 目录的连接地址替换为获取了前一个源代码的目录,删除最新源代码,执行 deploy:restart 任务。
这是在应用程序刚开始部署的情况下发现重大错误,希望立即返回原始状态的任务。
* executing `deploy:rollback'
* executing `deploy:rollback_code'
* executing "ls -x /var/rails/ballad/releases"
servers: ["alpha.oiax.jp"]
[alpha.oiax.jp] executing command
command finished
* executing "rm /var/rails/ballad/current; ln -s /var/rails/ballad/releases/20080517010640
/var/rails/ballad/current && rm -rf /var/rails/ballad/releases/20080518014637"
servers: ["alpha.oiax.jp"]
[alpha.oiax.jp] executing command
command finished
* executing `deploy:restart'
* executing "/var/rails/ballad/current/script/process/reaper"
servers: ["alpha.oiax.jp"]
[alpha.oiax.jp] executing command
** [out :: alpha.oiax.jp] Restarting 17952
** [out :: alpha.oiax.jp] Restarting 17962
** [out :: alpha.oiax.jp] Restarting 17964
** [out :: alpha.oiax.jp] Restarting 17960
command finished
另外,反复执行 deploy:update 任务的话,会在目标主机上堆积旧的源代码。因为浪费磁盘空间,所以希望留下几代,剩下的都从最新版清除。
这种时候,执行 deploy:cleanup 任务。
默认情况下将清除 5 代左右的源代码。需要留下的代数可由 keep_releases 变量控制,所以在 config/deploy.rb 作如下书写的话,大概留下 3 代的源代码。
set :keep_releases, 3
执行实例:
* executing `deploy:cleanup'
* executing "ls -x /var/rails/ballad/releases"
servers: ["alpha.oiax.jp"]
[alpha.oiax.jp] executing command
command finished
** keeping 3 of 5 deployed releases
* executing "rm -rf /var/rails/ballad/releases/20080512155340
/var/rails/ballad/releases/20080513092114"
servers: ["alpha.oiax.jp"]
[alpha.oiax.jp] executing command
command finished
(2008/05/18)
- 前言
- 第1章 安装 (2008/03/24)
- 第2章 SSH公钥的设置 (2008/03/25)
- 第3章 Windows环境下的 Capistrano (2008/03/26)
- 第4章 capify (2008/03/27)
- 第5章 目标主机的准备 (2008/03/28)
- 第6章 deploy:update (2008/03/29)
- 第7章 Rails应用程序的启动、停止、重启 (2008/05/17)
- 第8章 deploy:rollback 与 deploy:cleanup (2008/05/18)
- 第9章 切换至维护页面 (2008/06/03)

