Vlad the Deployer - 使用模式?

时间:2009-12-22 03:32:41

标签: ruby-on-rails ruby rake vlad-deployer

我开始使用vlad进行新部署,并且想知道设置它的最佳方式是什么,以便我可以为本地开发和远程生产服务器使用相同的任务?

我考虑将所有内容定义为远程任务,然后使用设置域变量的dev / prod方法,然后我可以调用rake dev/prod vlad:do_something,但这只是完全错误。

我的许多任务对于在我的本地服务器和生产服务器上运行非常有用,我希望通过为本地服务器设置一个“任务”并为远程服务器设置一个“remote_task”来避免重复自己。 e.g。

def do_something
  run "echo something"
end

task :do_something_dev
  do_something
end

remote_task do_something_prod
  do_something
end

我是否遗漏了某些内容,或者这些是否是在本地和远程计算机上使用相同rake任务的唯一选项?

1 个答案:

答案 0 :(得分:5)

这个怎么样:

[:development, :test, :production].each do |environment|
  namespace environment do
    task :do_something do
      echo "do something on #{environment}"
    end
  end
end

这会给你:

  • rake vlad:development:do_something
  • rake vlad:test:do_something
  • rake vlad:production:do_something

只用一种方法就可以不那么冗长了。但是只要有2或3种方法,就可以忽略开销。