星期四 2008 年 2 月 28 日

Capistrano 2.2.0

由 jamis 发布

Capistrano 是一个用于管理远程服务器和自动执行远程任务的实用程序。它通常用于部署 Rails 应用程序(但还可以做其他很多事情!)。版本 2.2.0 现已推出(无论如何,它现已发布,你可能需要等待文件传播到 gem 镜像)。

gem install capistrano

版本 2.2.0 具有以下更改

功能:动态角色定义。role() 方法现在接受一个块,它应返回主机名、Capistrano::ServerDefinition 对象、主机名数组或 Capistrano::ServerDefinition 对象数组。可用于在运行时描述角色中的服务器。

role :app do
  hosts = some_method_that_looks_up_the_current_hosts
  hosts[0,3]
end

功能:使用 server() 方法的替代以服务器为中心的 role 定义

role :app, "server"
role :web, "server"

# the above is the same as this:
server "server", :app, :web

功能:在任务中支持 :max_hosts 选项,以便限制任务,使其一次仅在分块时执行。这有助于使用 Capistrano 处理大量服务器的用户,并防止其达到连接上限和用尽内存。</p>

task :ping, :max_hosts => 100 do
  # anything here will only run against 100 hosts at a time
end

# alternatively, you can pass :max_hosts to the run command itself for
# finer granularity
task :pong do
  # this will run on ALL hosts at once
  run "something"

  # this will run on no more than 100 hosts at a time
  run "something-else", :max_hosts => 100
end

增强:改进了 Git 支持!

增强:在 Mercurial SCM 中支持密码提示。

增强:实现 Bzr#next_revision,以便可正确报告待处理更改,并使用 checkout ——lightweight 而不是 branch。

增强:带回 perforce SCM 的 :p4sync_flags 和 :p4client_root 变量。

此外,还修复了几个次要错误和错别字。你可以看到CHANGELOG了解所有血腥的详细信息。

一如既往,请通过 Rails trac 报告错误,网址是 http://dev.rubyonrails.org。而且如果你尚未订阅Capistrano 邮件列表,那么所有很酷的 Capistrano 用户都在此出没。