Capistrano 部署rails 应用
1 安装
gem install capistrano // For mutiple stages
gem install capistrano-ext
2 准备
capify .
这个命令会创建Capfile,和 config/deploy.rb 文件。Capfile会帮助加在一些合适的库文件和配置。
配置deploy.rb
set :application, "applciation_name" //git
set :scm, :git
set :repository, "git@www.xxx.com:/repository.git"
set :scm_passphrase, "" //sub version
set :scm, :subversion
set :repository, "https://account.svn.beanstalkapp.com/repository" // user name
set :user, "server-user-name"
多stage需要包含文件
require 'capistrano/ext/multistage'
然后
set :stages, ["staging", "production"]
set :default_stage, "staging"
然后在config目录下创建一个文件夹deploy 然后创建两个文件 production.rb staging.rb
production.rb
server "xxx.com", :app, :web, :db, :primary => true
set :deploy_to, "/var/www/application_name"
staging.rb
server "xxx.com", :app, :web, :db, :primary => true
set :deploy_to, "/var/www/application_staging"
3 一些设置
cap deploy:setup
这条命令SSH到服务器,创建deploy_to的目录。
errors:
[xxx.com] executing command
*** [err :: xxx.co] sudo
*** [err :: xxx.co] :
*** [err :: xxx.co] sorry, you must have a tty to run sudo
*** [err :: xxx.co]
command finished in 718ms
failed: "sh -c 'sudo -p '\\''sudo password: '\\'' mkdir -p /var/www/TTQuan_staging /var/www/xxx_staging/releases /var/www/xxx_staging/shared /var/www/xxx_staging/shared/system /var/www/TTQuan_staging/shared/log /var/www/xxx_staging/shared/pids'" on xxx.co
要添加
default_run_options[:pty] = true
确信你的设置没有问题
cap deploy:check
You appear to have all necessary dependencies installed
最后部署
cap deploy
cap production deploy
5 Tips & Tricks
1) Capistrano 第一次部署都会clone/export respository,然后之后每次git pull/svn up就会替代clone/export。如果你经常deploy 那这样会加速部署
set :deploy_via, :remote_cache
2)创建tasks
namespace :deploy do
task :restart, :roles => :web do
run "touch #{ current_path }/tmp/restart.txt"
end task :restart_daemons, :roles => :app do
sudo "monit restart all -g daemons"
end
end
Capistrano 不仅仅是通过ssh复制文件。完成复制文件之后你还可以配置一些事件和命令,例如通过自定义脚本重启服务器。Capistrano叫这些为“tasks”。
这里例子很简单。restart就是部署完成之后运行的。 “touch tmp/restart.txt“ 是用passenger时候使用的,但是如果你使用unicorn就换成unicron的就可以了。
下面的task 不会自动运行
after "deploy", "deploy:restart_daemons"
3)关联环境的branches
production.rb
set :branch, 'production'
staging.rb
set :branch, 'staging'
cap deploy 默认是staging
cap production deploy
参考 https://github.com/capistrano/capistrano/wiki
Capistrano 部署rails 应用的更多相关文章
- 使用GitLab CI + Capistrano部署CakePHP应用程序
使用GitLab CI + Capistrano部署CakePHP应用程序 摘要:本文描述了如使用GitLab CI + Capistrano部署CakePHP应用程序. 目录 1. 问题2. 解决方 ...
- 使用 Capistrano 部署总结
使用 Capistrano 部署总结 2014年6月27日 admin发表评论阅读评论 简介 Capistrano 是一个 Ruby 程序,它提供高级的工具集来部署你的 Web应用到服务器上.Capi ...
- apache服务器安装以及使用passenger插件部署rails应用
小例子可以部署在rails自带的WEBrick上,逐渐往后走还得上Apache. 安装apache服务器 命令是sudo apt-get install apache2 安装passenger插件 安 ...
- centos6 vps部署rails
centos 6 vps初始化部署rails应用1 ssh登录 vpsssh -p port root@server_ip_address 2 添加用户 adduser usernamepasswd ...
- PassengerNginxdebian快速部署Rails
Passenger/Nginx/Debian快速部署Rails PassengerNginxdebian快速部署Rails 安装所需的linux包 sudo apt-get install ...
- Passenger/Nginx/Debian快速部署Rails
安装所需的linux包 sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl gi ...
- 初始设置ubuntu 16.04 Vps部署rails
参考 https://blog.longwin.com.tw/2005/12/ssh_keygen_no_passwd/ 1 选择搬瓦工左边菜单栏中的“Root password modificati ...
- 部署rails遇到问题
underfined method for has_attched_file when installing paperclip 解决 create the file paperclip.rb ins ...
- Ruby on Rails Tutorial 第一章 之 Heroku部署
1.目的:用Heroku将开发环境部署到生产环境中.Heroku专门用于部署Rails和其他Web应用,部署Rails应用的过程非常简单——只要源码纳入Git版本控制系统就好. 2.搭建Heroku部 ...
随机推荐
- C++ 著名程序库 概览
本文转载自: http://ace.acejoy.com/thread-3777-1-1.html 1.C++各大有名库的介绍--C++标准库 2.C++各大有名库的介绍--准标准库B ...
- rdlc报表 矩阵控件下的按组分页
场景: 使用rdlc开发报表,例如订单产品报表,显示多个订单,一个订单有动态生成的固定的多个产品组成,同时统计每个订单里多个产品数量总数. 数据库层面分析: 此报表属于交叉报表,例如5个订单,3个产品 ...
- SharePoint 2013 将HTML文件转换为母版页
内容中包含 base64string 图片造成字符过多,拒绝显示
- 【Math】矩阵求导
https://en.wikipedia.org/wiki/Matrix_calculus http://blog.sina.com.cn/s/blog_7959e7ed0100w2b3.html
- php5.4转5.3被替换的函数
今天服务器由于业务需求,需要换成php5.4版本,以前使用的5.3,有些函数过期,导致了许多问题 1.ereg() 使用 preg_match() 替代 int preg_match ( string ...
- 2018-10-29 A股主要指数的市盈率(PE)估值高度
全指材料(SH000987) - 2018-10-29日,当前值:11.9289,平均值:30.66,中位数:26.1407,当前 接近历史新低.全指材料(SH000987)的历史市盈率PE详情 全指 ...
- 用highcharts展现你的数据
摘要: 前面已经分享过图表插件,今天在来将下如何使用highcharts来绘制图表.highcharts支持在线定制,你可以选择你所需要的模块,然后点击build就会生成一个js文件链接,右键保存到本 ...
- Android安装器学习笔记(一)
Android安装器学习笔记(一) 一.Android应用的四种安装方式: 1.通过系统应用PackageInstaller.apk进行安装,安装过程中会让用户确认 2.系统程序安装:在开机的时候自动 ...
- Aspose------导入Excel
代码: public List<T> ImportExcelToList<T>() { HttpContext context = HttpContext.Current; ) ...
- LeetCode[Array]----3Sum
3Sum Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find a ...