自动化部署主要步骤:
先安装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 3 实现自动化部署 Web 应用 自动化部署是指在将 Web 应用部署到生产环境时,使用工具或脚本来自动完成部署过程,以减少人工错误和提高部署效率。Capistrano 3 是一个流行的自动化部署工具,它可以...
gem-capistrano-wp, 使用 Capistrano 部署和管理WordPress站点的诀窍 capistrano-wp使用 Capistrano 部署和维护远程WordPress安装的食谱。这是一个替代版本控制和部署策略,来自于 wp堆栈管理中的一个。 mc栈期望...
Capistrano: 基于Ruby,Rake和SSH构建的部署自动化工具
Ansistrano – 用capistrano风格Ansible角色部署脚本的应用程序如 PHP, Python, Ruby等
Capistrano ::本地 该gem是Capistrano插件,用于简化“本地主机”部署。 Capistrano可以通过SSH( SSHKit::Backend::Netssh )将源部署到任何主机,包括localhost。 但是,如果只限于部署到localhost的简单情况,...
与Capistrano一起部署Akeneo 部署应用程序时,必须执行多个步骤(代码提取,依赖项更新,缓存清除等)。 为了促进这一关键时刻,您可以使用Capistrano之类的工具。 在下面的食谱中,您将学习如何将源代码托管在Git...
Capistrano:基于Ruby,Rake和SSH构建的部署自动化工具。 Capistrano是用于构建自动化部署脚本的框架。 尽管Capistrano本身是用Ruby编写的,但可以轻松地用于部署任何语言或框架的项目,无论是Rails,Java还是PHP。 ...
Capistrano::Gity Capistrano v3 的 Git 部署助手。 #安装在你的 Gemfile 中添加这个: gem 'capistrano' , '~> 3.1'gem 'capistrano-gity' , '~> 1.0.2'用法要求在Capfile中使用 gity 作为 capistrano:deploy 任务...
capistrano-3-rails-template, 使用 Capistrano 3部署 Rails 应用程序的模板 Capistrano 3 Rails 配置概述这是部署带有的Ruby on Rails 应用程序的示例配置,包括使用Unicorn和Sidekiq后台员工部署的零停机。...
用Ruby编写的远程服务器自动化和部署工具。 Capistrano使用特定于在()服务器上运行命令的方法扩展了Rake DSL。 Capistrano用Ruby编写,但是可以轻松地用于部署任何语言。 如果您的语言或框架有特殊的部署要求,则...
Capistrano :: NetStorage是一个插件,用于通过远程存储(如 , 等)部署应用程序。 从逻辑上讲,此工具支持O(1)部署。 概念 下图说明了Capistrano :: NetStorage的概念。 该库执行以下步骤作为capistrano任务...
一个capistrano插件,用于使用排他锁进行部署。 换句话说,这可防止任何两个进程同时运行cap deploy命令。 安装 将此行添加到您的应用程序的Gemfile中: gem 'capistrano-deploy_locker' 然后执行: $ bundle ...
使用GitLab CI + Capistrano部署CakePHP应用程序.pdf
capistrano-ec2tag 是一个插件,旨在简化部署到上托管的基础设施的任务。 它的灵感来自插件,所有功劳都归功于该插件。 虽然最初的插件对我很有用,但我开始遇到需要更多灵活性的情况。 更具体地说,为了更改安全组...
Capistrano :: Hipchat 在Hipchat房间中通知有关新部署的信息,其中显示了当前部署中包含的最新提交的git日志。安装将此行添加到您的应用程序的Gemfile中: group :deployment do gem 'capistrano-hipchat'end组声明...
capistrano-asg的编写旨在简化Rails应用程序到AWS AutoScale组的部署。 capistrano-asg将: 将代码部署到连接到给定AutoScale组的每个正在运行的实例 部署后,从一个正在运行的实例中创建一个AMI 将带有新代码的...
Capistrano::部署状态 Capistrano v3 的一项任务,它向您部署的 rails 应用程序添加一个简单的 html 页面以显示部署的详细信息。 应用 分支/标签 部署时间 部署者 scm 修订 发布时间戳 安装 将此行添加到应用程序的...
Capistrano 插件,用于使用 rbenv 进行轻量级Ruby管理。 适用于 Capistrano 3(仅限)。 对于 Capistrano 2 支持,请检查( capistrano-rbenv gem 的 1.x 版)。 安装 通过将以下内容添加到Gemfile来安装: gem ...
Capistrano 的 YAML 多级扩展 注意:有关 Capistrano 3 兼容性,请参阅 Oleg 的 fork。 此扩展是 Jamis Buck 的 Capistrano 多阶段扩展的替代,后者将多阶段配置存储在单个 YAML 文件中,而不是多个 Ruby 文件中。 ...
Capistrano-Knife-Solo使用Capistrano中配置的服务器和角色,将它们直接馈送到Knife Solo / Chef中进行节点部署。 假设存在一个Chef角色来匹配定义的Capistrano角色( :all除外)。 应与其他可动态添加服务器的...