我该如何在Ruby-way中?
# Rakefile
desc "Run task on server #1"
task :one do
# Do somethin on server 1
Srv1.exec "..."
end
desc "Run task on server #2"
task :two do
# Do somethin on server 2
Srv2.exec "..."
end
desc "Run task on both servers"
task :both do
# Do somethin on both servers
Serv1.exec "..."
Serv2.exec "..."
end
我如何要求最终执行配置代码?我如何进行缩放(如果需要serv3)?Serv1
应该是课程还是其他?
我需要做的是用耙子控制流浪vm,在vagrant内部运行自定义任务,将数据与主机系统同步,在生产上运行一些代码,然后将结果发送给Vagrant,等等。
首先,我将为您的模型修复次要校正。使用更简单的方法执行both
任务:
desc "Run task on both servers"
task :both => [ :one, :two ]
我如何要求最终执行配置代码?我如何进行缩放(如果需要serv3)?Serv1应该是课程还是其他?
只需创建一个Serv
类,然后将其传递给许多服务器或其他服务。因此,您将得到:
desc "Run task on a server"
task :one do
# Do somethin on a server
Serv.new( ENV[ 'SERVER_NUMBER' ] ).exec "..."
end
desc "Run task on all servers"
task :one do
# Do somethin on all servers
Serv.exec "..."
end
如果您想在多个服务器上做一些事情,则rake
可能不是最佳的工作工具。也许您想查看通常用于部署软件的Capistrano
,但也可以是远程处理一般事情的工具。
好。我已经解决了问题,将两个文件加载到Rakefile
的头部,第一个是带有服务器类的server.rb
,第二个是init.rb
,带有服务器实例化代码Server1 = Server.new({:user=>'...
,可从Rackfile
中的任务访问。