One*_*ema 4 deployment capistrano amazon-web-services cloud-hosting rackspace-cloud
我听说Capistrano支持部署到多个服务器,但我还没有找到一种实用的方法来设置它.当我说多个服务器时,我指的是在生产环境中运行相同应用程序的服务器.我想在任何时候部署到5台或10台服务器,如果这是我目前正在使用的.
谢谢.
使用多个服务器是使用capistrano而不是手工操作的主要原因之一.
您的deploy.rb只需要定义应该在哪些服务器上执行哪些操作,这通过设置哪些服务器属于哪些角色来完成.您可以创建自己的角色,但内置的capistrano配方希望您定义3个角色:
这3个是同义词并不罕见:如果你有一堆相同的服务器都运行apache + passenger,那么它们都是app和web服务器.其中一个需要被赋予db角色.
您可以在deploy.rb文件中定义角色.最简单的是这只是一个ip地址或主机名列表:
role :app, [192.168.1.1,192.168.1.2]
Run Code Online (Sandbox Code Playgroud)
它也可以是一个块.例如,在部署到ec2时,您可能会插入一个api调用来检索要部署到的服务器列表.我通常通过为服务器分配标签来做到这一点,在这种情况下你可能会这样做
role :app do
ec2.instances.tagged('app').map(&:ip_address)
end
Run Code Online (Sandbox Code Playgroud)
使用app标签将该角色映射到ec2实例(capistrano缓存此信息,并且只执行一次块)
| 归档时间: |
|
| 查看次数: |
3181 次 |
| 最近记录: |