`
温柔一刀
  • 浏览: 863402 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

rails应用自动化部署——使用capistrano2.0

阅读更多
昨天用capistrano2.0把应用部署搞的比较自动化了一点.

capistrano2.0基本使用步骤是:

1.install capistrano
ruby 代码
  1. gem install capistrano  

2.进入rails工程根目录执行
 
ruby 代码
  1. capify .  

  这个命令会生成两个文件,一个是Capfile文件,在应用的根目录下,另一个是deploy.rb文件,在应用的config目录下
  可以用cap -T 查看所有task, cap -e deploy 解释deploy任务的详情  。

3.修改config/deploy.rb文件
ruby 代码
 
  1. set :application"dcrm2"  
  2. set :repository,  "svn://10.200.106.168/crm2/trunk"  
  3. set :svn_username"username"  
  4. set :svn_password"password"  
  5.   
  6. set :use_sudo,false  
  7.   
  8. set :deploy_to"/usr/local/apache22/htdocs/#{application}"  
  9. set :user"username"  
  10. set :password"password"  
  11.   
  12. depend :local:command"convert"  
  13. depend :remote:command"iconv"  
  14.   
  15. # If you aren't using Subversion to manage your source code, specify  
  16. # your SCM below:  
  17. # set :scm, :subversion  
  18.   
  19. role :app"www.derbysoft.com"  
  20. role :web"www.derbysoft.com"  
  21. role :db,  "www.derbysoft.com":primary => true  
  22.   
  23. task :create_file_link:roles => :web do   
  24.   run "ln -s #{deploy_to}/shared/files/ #{deploy_to}/current/public/files"   
  25. end  
  26.   
  27. task :chmod:roles => :web do  
  28.   run "chmod -fR 755 #{deploy_to}/current/script/*"  
  29. end  
  30.   
  31. after "deploy:symlink":chmod:create_file_link  

其中
application:Rails应用名
repository:版本管理系统(默认svn)的链接URL
svn_username:svn用户名
svn_password:svn密码
把use_sudo设为false是不用sudo
deploy_to:应用部署的路径
user:ssh用户名
password:ssh用户名
depend:检查某些依赖
app:应用服务器列表
web:web服务器名列表
db:数据库服务器列表
create_file_link和chmod是自己定义的task,我在这里定义create_file_link是建一个link而使public文件夹下的files目录不受版本控制的影响,因为files目录下是用户自己上传的一些东西,不方便放在版本控制里面。定义chmod是为了改变服务器上某些文件的权限,主要是为了给script目录下的文件加上可执行权限,要不然默认是不可执行的。这两个task会在deploy:symlink任务执行完毕之后执行(执行cap deploy命令时会先执行一些任务,依赖的其中最后一个task是deploy:symlink)

4.创建spin文件

在应用的script文件夹下创建一个spin文件(没有后缀名)
如果用Mongrel方式启动应用,内容大概是这样子的:
ruby 代码
  1. /usr/local/apache22/htdocs/dcrm2/current/script/process/spawner -p 3000 -i 1  

用cap deploy命令部署应用时,会调用spin文件启动/重启服务

5.初始化服务器上的运行环境   
ruby 代码
 
  1. cap deploy:setup  

    这一步会连上服务器,创建一些目录:
ruby 代码
 
  1. #{deploy_to}/  
  2. #{deploy_to}/releases  
  3. #{deploy_to}/shared  
  4. #{deploy_to}/shared/log  
  5. #{deploy_to}/shared/system  
  6. #{deploy_to}/shared/pids  

releases目录里面会存放所有的发布版本
shared目录是为了共享文件,比如log文件,还可以自己定义共享的文件,比如我前面定义了一个files共享文件夹
在第一此部署后还会产生一个current链接,它会自动指向releases目录里面最新的版本

6.deploy

  执行cap deploy命令,部署完成(貌似第一次要先执行cap deploy:start,要不重启服务会失败)。
  如果部署的时候要迁移数据,执行cap deploy:migrations完成迁移和部署
分享到:
评论
1 楼 surootcsdn 2007-11-21  
我关心的是ruby代码的安全,有没有加密、编译之类的功能?反正是不想让代码对用户开放或copy。

相关推荐

    capistrano-3-rails-template, 使用 Capistrano 3部署 Rails 应用程序的模板.zip

    capistrano-3-rails-template, 使用 Capistrano 3部署 Rails 应用程序的模板 Capistrano 3 Rails 配置概述这是部署带有的Ruby on Rails 应用程序的示例配置,包括使用Unicorn和Sidekiq后台员工部署的零停机。...

    jRuby On Rails WEB2.0

    《jRuby on Rails WEB2.0》是一部由Ola Bini撰写的书籍,深入探讨了如何将Ruby on Rails这一敏捷开源框架与Java平台相结合,以构建高效、灵活的Web 2.0应用。作为JRuby项目的领头人和核心开发者,Ola Bini以其丰富的...

    rails 部署 nginx

    为了自动化部署过程,开发者可能会使用Capistrano这样的工具。Capistrano是一个基于Ruby的任务执行框架,可帮助管理远程服务器上的代码部署,包括代码同步、服务器配置更新和应用重启等操作。 8. **监控与日志**:...

    Rails应用程序样本AWSOpsWorksRailsDemoApp.zip

    8. **Capistrano或类似的部署工具**:可能用于自动化部署过程,与OpsWorks配合使用。 9. **Cookbooks和Recipes**:OpsWorks使用Chef进行配置管理,Cookbooks包含了配置服务器和应用的指令,而Recipes是Cookbooks中的...

    Ruby-Capistrano基于RubyRake和SSH构建的部署自动化工具

    **Ruby-Capistrano:基于Ruby、Rake和SSH的部署自动化工具** Capistrano是一款强大的、开源的部署自动化工具,它主要由Ruby语言编写,利用Rake作为任务执行引擎,并通过SSH(Secure Shell)协议与远程服务器进行...

    ruby on rails与MySql的环境配置——支持rails 2.3.5以上版本

    推荐在线安装,因为Rails会自动寻找并安装最新版本及其依赖组件。在命令行界面(CMD)输入`gem install rails`,这个过程可能因为网络问题导致失败,提示找不到rails。此时,你可以使用HTTP代理服务器来完成安装,...

    好用的rails 2.0 Api 文档

    Rails 2.0 API 文档是一个非常宝贵的资源,它为开发者提供了全面的指南,以便于在使用Ruby on Rails 2.0版本时更好地理解和利用其框架功能。Ruby on Rails(简称Rails)是一个开源的Web应用框架,它遵循MVC(模型-...

    rails+grape+swagger+devise+capistrano 简单融合示例

    在本项目中,Capistrano被用来自动化部署Rails应用到服务器,大大提高了开发团队的效率。 总结来说,这个"rails+grape+swagger+devise+capistrano"的简单融合示例展示了一个完整的、功能齐全的API项目架构。Rails...

    Ruby on Rails:部署Rails应用至Heroku.docx

    Ruby on Rails:部署Rails应用至Heroku.docx

    ruby on rails2.0本地安装包

    这个“ruby on rails2.0本地安装包”适用于Windows和Linux操作系统,特别是针对网络速度较慢的用户设计,方便他们离线安装Rails 2.0.2版本。 在Rails 2.0版本中,有几个关键性的改进和特性: 1. **ActiveRecord**...

    再次发一本部署rails的书

    2. **版本控制与代码部署**:强调Git在版本控制中的作用,介绍如何将代码从本地仓库推送到远程服务器,并使用工具如Capistrano实现自动化部署。 3. **Web服务器与应用服务器**:讲述如何配置Nginx或Apache作为反向...

    rails2.0的配置方法

    对于开发者而言,掌握Rails 2.0不仅可以提高开发效率,还能为构建高质量的Web应用打下坚实的基础。 #### 三、环境搭建与配置 1. **下载InstantRails-2.0-win.zip** - 首先,需要从官方地址下载InstantRails 2.0的...

    Capistrano:远程多服务器自动化工具-开源

    用Ruby编写的远程服务器自动化和部署工具。 Capistrano使用特定于在()服务器上运行命令的方法扩展了Rake DSL。 Capistrano用Ruby编写,但是可以轻松地用于部署任何语言。 如果您的语言或框架有特殊的部署要求,则...

    Web开发敏捷之道-应用Rails进行敏捷Web开发 pdf

    7. **部署与运维**:除了开发,书中还涵盖了应用的部署和运维,如使用Capistrano进行自动化部署,以及服务器配置、性能优化和故障排查等实践技巧。 8. **版本控制**:Git是现代软件开发中不可或缺的版本控制系统,...

    ruby-aws-cookbooks:AWS OpsWorks 上的 Ruby on Rails + Sidekiq + Elasticsearch + Capistrano 说明书

    此项目特别强调了集成Sidekiq(一个用于Rails应用的后台处理队列)、Elasticsearch(一种流行的全文搜索引擎)以及Capistrano(一个用于自动化部署的工具)。 首先,Ruby on Rails是Web开发中的一个流行框架,它...

    capistrano-uberspace:使用Capistrano 3将您的Rails应用程序部署在uberspace上

    使用Capistrano 3将Rails应用程序部署到 。 支持许多数据库,ruby版本和ruby Web服务器。 注意:对于新的uberspace(在uberspace版本7平台上),似乎会出现一些错误。 修复这些问题的任何帮助均受到高度赞赏。 ...

    JRuby on Rails Web 2.0 Projects

    JRuby on Rails则进一步拓展了这一框架的应用范围,允许开发者在Java生态系统中部署RoR应用。这不仅有助于利用Java平台的优势,如企业级支持、性能优化和广泛的库资源,还能让开发者在不牺牲Ruby编程体验的情况下,...

    capistrano-postgresql:设置用于Capistrano Rails应用程序部署的Postgresql

    Capistrano PostgreSQL插件在部署Rails应用程序时抽象并加快了PostgreSQL常见管理任务。 以下是此插件为您的capistrano部署过程所做的特定操作: 在服务器上创建一个新的PostgreSQL数据库和数据库用户 在所有发行...

    rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板.zip

    rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...

Global site tag (gtag.js) - Google Analytics