Deployment Capistrano-如何部署到多个云服务器
我听说Capistrano支持部署到多个服务器,但我还没有找到一种实用的方法来设置它。当我说多台服务器时,我指的是在生产环境中运行同一应用程序的服务器。在任何时候,如果我目前使用的是5台或10台服务器,我都希望将其部署到5台或10台服务器上Deployment Capistrano-如何部署到多个云服务器,deployment,amazon-web-services,capistrano,cloud-hosting,rackspace-cloud,Deployment,Amazon Web Services,Capistrano,Cloud Hosting,Rackspace Cloud,我听说Capistrano支持部署到多个服务器,但我还没有找到一种实用的方法来设置它。当我说多台服务器时,我指的是在生产环境中运行同一应用程序的服务器。在任何时候,如果我目前使用的是5台或10台服务器,我都希望将其部署到5台或10台服务器上 谢谢。使用多台服务器是使用capistrano而不仅仅是手工操作的主要原因之一 您的deploy.rb只需要定义应该在哪些服务器上执行哪些操作,这是通过设置哪些服务器属于哪些角色来完成的。您可以创建自己的角色,但内置的capistrano配方要求您定义3个角
谢谢。使用多台服务器是使用capistrano而不仅仅是手工操作的主要原因之一 您的deploy.rb只需要定义应该在哪些服务器上执行哪些操作,这是通过设置哪些服务器属于哪些角色来完成的。您可以创建自己的角色,但内置的capistrano配方要求您定义3个角色:
- 应用程序:运行应用程序代码的地方
- web:web前端
- db:运行迁移的位置
role :app, [192.168.1.1,192.168.1.2]
它也可以是块。例如,在部署到ec2时,可以插入一个api调用,用于检索要部署到的服务器列表。我通常通过为服务器分配标记来实现这一点,在这种情况下,您可能需要
role :app do
ec2.instances.tagged('app').map(&:ip_address)
end
要将该角色映射到带有app标记的ec2实例(capistrano缓存此信息,并且只执行一次块)我必须对Rails 4使用不同的语法
role :app, %w{s01.app.com s02.app.com}
role :web, %w{s01.web.com s02.web.com}