Vlad the Deployer - 使用模式?

Chr*_*mbo 3 ruby rake ruby-on-rails vlad-deployer

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

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

我的许多任务对于在我的本地服务器和生产服务器上运行很有用,我希望通过为本地服务器设置一个"任务"并为远程服务器设置一个"remote_task"来避免重复自己.例如

def do_something
  run "echo something"
end

task :do_something_dev
  do_something
end

remote_task do_something_prod
  do_something
end
Run Code Online (Sandbox Code Playgroud)

我错过了什么或者这些是在本地和远程计算机上使用相同rake任务的唯一选项吗?

kik*_*ito 5

这个怎么样:

[:development, :test, :production].each do |environment|
  namespace environment do
    task :do_something do
      echo "do something on #{environment}"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这会给你:

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

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