`

capistrano插件实现自动化部署

 
阅读更多

自动化部署主要步骤:

先安装capistrano插件-->运行"capify ."命令,生成文件-->修改config/deploy.rb文件-->运行"cap deploy:setup"生成对应的目录结构-->运行"cap deploy"(下载代码到服务器上)

 

目录结构:

 

根目录:

  /releases   #5个版本的代码

  /shared     #存放公共的代码、图片等

  /current    #当前版本代码,会指定到releases目录下最新一个版本

 

 

 

1.安装capistrano插件:在项目的Gemfile文件中添加:

gem 'capistrano'

 

 

2.运行下面命令(生成capfile与config/deploy.rb文件):

capify .  

 

 

3.deploy.rb文件的配置:

set :application, "testb"   #项目名
set :repository,  "库地址"    #如:git@gitcafe.com:aaa/dddss.git 
set :keep_releases, 5          #只保留5个备份

# set :scm, :git # You can set :scm explicitly or Capistrano will make an intelligent guess based on known version control directory names
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none`

role :web, "服务器地址", "...", "..."                        # Your HTTP server, Apache/etc
role :app, "服务器地址", "...", "..."        # This may be the same as your `Web` server
role :db,  "数据库地址", :primary => true # This is where Rails migrations will run
role :db,  "数据库地址"
set :user, "用户名"
set :password, "密码"
set :deploy_to, "项目存放目录"
set :use_sudo, false   #是否需要sudo最高权限
default_run_options[:pty] = true #伪登录

set :shared_children,   %w(public/system log tmp/pids public/data) 
#把data、system、pids目录设置为共享目录(作用:当做自动部署时不会修改这三个目录内容)

# If you are using Passenger mod_rails uncomment this:
namespace :deploy do
   task :start do ; end
   task :stop do ; end
   task :bundle, :roles=>:app, :except=>{:no_release=>true} do
     run "rvm use 1.9.3; cd #{deploy_to}/current; bundle install"
   end
   task :assets, :roles=>:app, :except=>{:no_release=>true} do
      run "/bin/bash -l -c 'rvm use 1.9.3; cd #{deploy_to}/current; rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets'"
   end
   before "deploy:restart", "deploy:assets"  #在重启之前,做rake assets:precompile
   task :restart, :roles => :app, :except => { :no_release => true } do
     run "cd #{deploy_to}/current/tmp; touch restart.txt"
   end
   after "deploy:restart", "deploy:cleanup"   #保留5个版本最新版本,清除历史版本 
   
end

 

 

4.一些基本命令:

cap deploy:setup   #生成部署目录
cap -T     #查看有哪些命令
cap deploy               # Deploys your project
cap deploy:check      #Test deployment dependencies
cap deploy:cleanup   #clean up old releases
cap deploy:migrate
cap deploy:pendding:diff
cap deploy:rollback
cap deploy:rollback:code  #撤回上一个版本
cap deploy:rollback_code
cap deploy:update
cap deploy:update_code
cap deploy:upload

 

 

 

分享到:
评论

相关推荐

    capistrano-presentation:这是有关使用Capistrano进行自动部署的演示

    Capistrano是一个强大的自动化部署工具,主要在Ruby社区中广泛使用。它允许开发者通过简单的命令行界面执行复杂的部署任务,包括代码更新、数据库迁移、资产编译等。在这个"capistrano-presentation"中,我们将深入...

    capistrano-rails-console:Capistrano插件,它添加了远程Rails控制台和dbconsole

    Capistrano是一个强大的自动化部署工具,常用于Ruby on Rails项目的部署。它允许开发者通过简单的命令行接口执行复杂的任务,如代码同步、服务器配置和数据库迁移等。`capistrano-rails-console`是针对Capistrano的...

    web 部署工具

    1. **Jenkins**:一个开源持续集成(CI/CD)工具,可以自动化构建、测试和部署项目,支持各种插件以适应不同的开发流程。 2. **Docker**:提供容器化技术,使得应用可以在独立的环境中运行,便于部署和移植。Docker ...

    Pomander一个PHP应用部署工具

    - **与Capistrano对比**:虽然两者都用于自动化部署,Capistrano主要针对Ruby,而Pomander专注于PHP。 - **与Docker Compose对比**:Docker Compose主要用于容器化部署,Pomander则更侧重于传统服务器环境的部署。...

    habitat:Habitat的目标是成为多个@hanami机架应用程序的复制处理程序,重点放在插件上,并通过capistrano轻松进行远程部署

    Capistrano 是一个开源的Ruby工具,用于自动化部署任务,如代码发布、数据库迁移和服务器配置。它使用SSH协议连接到远程服务器,执行预定义的脚本。通过集成Capistrano,Habitat简化了远程部署的过程,使得开发者...

    RUBYONRAILS服务器配置收集.pdf

    本文将详述如何在Ubuntu 12.04操作系统上手动配置服务器环境,包括Ruby、数据库、Nginx、Redis以及监控工具Monit,同时介绍使用Capistrano进行自动化部署。 首先,我们需要安装必要的软件环境。Ruby是Rails框架的...

    RUBYONRAILS服务器配置[总结].pdf

    - 使用Capistrano进行自动化部署,它是一个Ruby库,允许通过SSH执行远程任务。在Rails项目的Gemfile中添加Capistrano及其相关插件,如`capistrano-rails`, `capistrano-rvm`, `capistrano-sidekiq`等,然后执行`...

    DevOps开源工具平台介绍.docx

    这些工具共同构成了DevOps流程的核心,帮助开发团队实现快速迭代、自动化测试和可靠的部署,确保软件质量和稳定性。选择合适的工具组合取决于项目需求、团队技能和组织文化,合理的工具链可以显著提升开发效率和产品...

    rubber:一个capistranorails插件,可轻松将管理规模部署到各种服务提供商,包括EC2,DigitalOcean,vSphere和裸机服务器

    在Ruby on Rails的世界里,Capistrano是一款广泛使用的自动化部署工具,它允许开发者通过命令行执行脚本来部署代码。橡胶(Rubber)则进一步扩展了Capistrano的功能,增加了对不同云环境的支持和适应性。它处理了诸如...

    superruby.zip

    此外,压缩包可能还包含了开发和部署的工具,如Bundler用于管理依赖,Rake作为构建工具,Git用于版本控制,Capistrano用于自动化部署。这些工具都是Ruby开发的标准配置,能够帮助开发者有效地组织和管理项目。 总的...

    詹金斯测试

    例如,使用Capistrano或Docker进行自动化部署,确保每次成功的构建都能无缝推送到目标服务器。 总结起来,詹金斯测试在PHP项目中起到了关键的作用,它可以帮助团队提高开发效率,减少错误,增强代码质量,并实现...

    inspinia admin - v2.5 Rails_Full_Version

    9. **Heroku或Capistrano部署**:学会如何将Rails应用部署到生产环境,如Heroku云平台或使用Capistrano进行自动化部署。 10. **Rails安全**:了解CSRF(跨站请求伪造)、XSS(跨站脚本攻击)等安全问题,以及Rails...

    源代码 for web开发敏捷之道:应用rails进行敏捷web开发(原书第4版)

    9. **部署**:学习如何将Rails应用部署到服务器,如使用Capistrano进行自动化部署。 10. **Rails插件和gem**:介绍如何利用社区的插件和gem扩展Rails的功能,例如Devise用于用户认证,CanCanCan处理授权,或者...

    Agile.Web.Development.with.Rails.3nd.Edition.Beta.rar

    在部署方面,书中会涵盖将Rails应用部署到各种服务器环境的技巧,如Heroku、AWS等云平台,以及使用Capistrano进行自动化部署的方法。 总之,《敏捷Web开发:Rails 3版》是Rails开发者不可或缺的参考指南,无论你是...

    应用Rails进行敏捷Web开发(第2版)

    7. **部署和维护**:除了开发,书中还会涉及应用的部署,如使用Capistrano进行自动化部署,以及如何使用Nginx和Passenger等服务器软件进行生产环境配置。 8. **社区和工具**:Rails拥有庞大的开发者社区和丰富的...

    agile web development with rails2代码

    10. **Capistrano部署**:Rails2时期的常见部署工具,用于自动化部署流程,简化了生产环境的管理。 通过这个压缩包中的源代码,你可以看到如何组织Rails项目,如何实现RESTful API,以及如何使用测试确保代码质量。...

    Wrox - Professional Ruby on Rails (Feb 2008)

    9. **部署与性能优化**:书中可能会讲解如何将Rails应用部署到服务器,如使用Capistrano自动化部署,以及如何进行性能调优,例如缓存策略、数据库索引和异步处理。 10. **Ajax和JavaScript**:Rails与JavaScript库...

    Agile Web Development with Rails Third Edition(2009年第三版)

    8. **部署与性能优化**:除了开发过程,书中还涉及应用部署、性能监控和优化,包括如何配置服务器、使用Capistrano进行自动化部署,以及如何通过缓存、数据库优化等方式提升应用性能。 9. **插件与社区资源**:...

    rails-documentation-1-2-1.zip

    9. **部署**:学习如何将 Rails 应用部署到服务器,如使用 Capistrano 进行自动化部署,或者在 Heroku 等云平台进行托管。 10. **ActiveRecord 查询接口**:掌握 ActiveRecord 提供的查询语言,包括链式查询、关联...

Global site tag (gtag.js) - Google Analytics