部署任务:
机器1 192.168.100.231, os: CentOS release3.6 (Final),装上apache2.3.6+mongrel cluster
机器2 192.168.100.234, os: CentOS release4.3 (Final) 装上 mongrel cluster
关于配置apache+mongrel cluster本文不再赘述,请看本人的文章
关于Capistrano的基础,请看本人的文章
在这边文章中主要使用了Capistrano部署了一个单实例的mongrel 服务器,并且也只部署了一台机器
基于前两篇的基础,本文描述了如何使用Capistrano部署apache+mongrel cluster应用到多台机器
重点就是 deploy.rb
set:application,"space"
set:repository,"http://192.168.100.212:3690/repo/moxtv/branches/space"
set:svn_username,"weip"
set:svn_password,"weip"
#Ifyouaren'tdeployingto/u/apps/#{application}onthetarget
#servers(whichisthedefault),youcanspecifytheactuallocation
#viathe:deploy_tovariable:
#set:deploy_to,"/var/www/#{application}"
#Ifyouaren'tusingSubversiontomanageyoursourcecode,specify
#yourSCMbelow:
#set:scm,:subversion
set:use_sudo,false
set:deploy_to,"/var/www/webapps/#{application}"
set:user,"root"
set:password,"secretpa"
role:app,"192.168.100.231","192.168.100.234"#new0
role:web,"192.168.100.231"
role:db,"192.168.100.231",:primary=>true
task:chmod,:roles=>:webdo
run"chmod-fR755#{deploy_to}/current/script/*"
end
after"deploy:symlink",:chmod
default_environment["PATH"]="/usr/local/ruby2/bin:/usr/local/apache2.2.6/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/ruby/bin:/usr/local/ant/bin:/usr/java/jdk1.5.0_05/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin"
#new1
set:mongrel_conf,"#{current_path}/config/mongrel_cluster.yml"
set:mongrel_port,"4000"
set:mongrel_nodes,"4"
#new2
namespace:deploydo
task:start,:roles=>:appdo
run"cd#{current_path}&&mongrel_railscluster::configure-eproduction-p#{mongrel_port}-N#{mongrel_nodes}-c#{current_path}"
run"cd#{current_path}&&mongrel_railscluster::start"
#run"rm-rf/home/#{user}/public_html;ln-s#{current_path}/public/home/#{user}/public_html"
run"mkdir-p#{deploy_to}/shared/config"
run"mv#{current_path}/config/mongrel_cluster.yml#{deploy_to}/shared/config/mongrel_cluster.yml"
run"ln-s#{deploy_to}/shared/config/mongrel_cluster.yml#{current_path}/config/mongrel_cluster.yml"
run"apachectlstart"
end
end
#new3
namespace:deploydo
task:restart,:roles=>:appdo
run"ln-s#{deploy_to}/shared/config/mongrel_cluster.yml#{current_path}/config/mongrel_cluster.yml"
run"cd#{current_path}&&mongrel_railscluster::restart"
run"apachectlrestart"
end
end
主要修改了#new0 ,并删除了单实例mongrel中的spin文件
并加了3个部分,#new1,#new2,#new3
#new1 设置了些 与 mongrel cluster相关的变量
#new2#new3 分别重写了deploy:start和deploy:restart任务
这样就防止了默认的任务去寻找相关的spin文件
配置文件准备就绪,然后cap setup,cap deploy:cold,cap deploy
分享到:
相关推荐
使用GitLab CI + Capistrano部署CakePHP应用程序.pdf
gem-capistrano-wp, 使用 Capistrano 部署和管理WordPress站点的诀窍 capistrano-wp使用 Capistrano 部署和维护远程WordPress安装的食谱。这是一个替代版本控制和部署策略,来自于 wp堆栈管理中的一个。 mc栈期望...
laravel, gem 用于使用 Capistrano v3部署 Laravel 项目* Capistrano::Laravel使用 Capistrano v3部署 Laravel 应用程序*安装如果管理 Capistrano 部署作为 ruby 项目,请将这里行添加到应用程序的应用程序中:gem '...
capistrano-3-rails-template, 使用 Capistrano 3部署 Rails 应用程序的模板 Capistrano 3 Rails 配置概述这是部署带有的Ruby on Rails 应用程序的示例配置,包括使用Unicorn和Sidekiq后台员工部署的零停机。...
Capistrano :: Buildpack 使用Capistrano部署应用程序。安装将此行添加到应用程序的Gemfile中: gem 'capistrano-buildpack'然后执行: $ bundle或将其自己安装为: $ gem install capistrano-buildpack用法这是一个...
该gem提供了一些Capistrano3任务,以使用npm软件包Forever部署NodeJS服务器,以确保该应用程序可以永久运行。 该宝石被命名为“ capistrano-4ever”,因为“ capistrano-forever”被使用(因此,可能使该宝石变得...
Capistrano::Gity Capistrano v3 的 Git 部署助手。 #安装在你的 Gemfile 中添加这个: gem 'capistrano' , '~> 3.1'gem 'capistrano-gity' , '~> 1.0.2'用法要求在Capfile中使用 gity 作为 capistrano:deploy 任务...
使用 Capistrano 3 部署 Craft 网站的框架。 特征 使用 Capistrano 从您选择的 Git 服务器(例如 Bitbucket 或 Github)部署 Craft 网站 在环境之间推和拉数据库 在环境之间同步资产文件夹 受启发的Craft的简单样板...
使用Capistrano v3部署CakePHP应用程序。* 重要信息:到目前为止,已经使用CakePHP 3进行了测试,但是应该适用于使用作曲家的CakePHP 2。 安装 将此行添加到您的应用程序的Gemfile中: gem 'capistrano' , '~> ...
Mconf-Web Caphub 使用部署Mconf的Web(您可能希望添加任何其他应用程序),使用。 如果您知道 Capistrano 是什么以及它是如何工作的,那么学习如何使用它部署 Mconf-Web 应该很简单。 如果您现在不知道 Capistrano ...
capistrano-asg的编写旨在简化Rails应用程序到AWS AutoScale组的部署。 capistrano-asg将: 将代码部署到连接到给定AutoScale组的每个正在运行的实例 部署后,从一个正在运行的实例中创建一个AMI 将带有新代码的...
与Capistrano一起部署Akeneo 部署应用程序时,必须执行多个步骤(代码提取,依赖项更新,缓存清除等)。 为了促进这一关键时刻,您可以使用Capistrano之类的工具。 在下面的食谱中,您将学习如何将源代码托管在Git...
使用 Capistrano 3 实现自动化部署可以带来以下几个优点: * 减少人工错误:自动化部署可以减少人工错误,提高部署效率。 * 提高部署速度:自动化部署可以快速完成部署过程,提高部署速度。 * 简化部署过程:自动化...
玻璃水瓶 :sake: 由Capistrano和Distillery提供支持的Elixir部署 一个可扩展的工具,用于构建Elixir应用程序的发行版并将其部署到服务器节点。用法部署和处理节点的示例: bundle exec cap production deploybundle ...
使用 Capistrano 部署 Rails Capistrano 研讨会的示例应用程序Ubuntu 14.04 - Capistrano - Nginx + 乘客1. 创建 droplet(不要忘记 ssh 密钥) ssh-keygen -t rsa -C " lerolero@gmail.com "pbcopy < ~ /.ssh/...
使用 Capistrano 部署 Phoenix 应用程序。 凤凰特定选项 set :mix_env , "production" 安装 将此行添加到应用程序的 Gemfile 中: gem 'capistrano-phoenix' 然后执行: $ bundle 或者自己安装: $ gem ...
deprec-Capistrano的部署食谱我已经5年没有使用/更新了-迈克该宝石是一组任务的。 这些任务用于在运行Ubuntu linux的服务器上安装,配置和控制系统服务。 Deprec由Mike Bailey于2006年创建,旨在为在Ubuntu服务器上...
在IT行业中,自动化部署是提高效率的关键之一,而Ansistrano就是这样一个工具,它借鉴了Ruby的Capistrano工具的风格,为Ansible提供了一种简单、高效的部署解决方案。尤其适用于Python、PHP、Ruby等应用的部署场景。...
Github 支持 Capistrano 部署管理 UI。 Strano 允许用户通过一个简洁的 web 界面运行任何的 capistrano任务,能很简单的从你的任意 Github repositories 创建项目。Strano 能使用 Capistrano 配置它本身,也就是说...
git 标记将标签添加到正在部署的存储库(使用 Capistrano),格式为: #{stage}-week#{Date.today.cweek-1}.#{release_timestamp}指示将 gem 添加到您的 Gemfile 中: gem 'git-tagging'在你的 Capfile 添加 require...