(1)安装capstrano gem install capstrano# --version默认版本也行
(2)capfile .可以看到怎么初始化capistrano文档的命令,以及官方文档网址,大的版本信息
(3)cap install 这一步如果你是单独新建了一个文件夹会获得如下结构。
.
├── Capfile
├── config
│ ├── deploy
│ │ ├── production.rb
│ │ └── staging.rb
│ └── deploy.rb
├── lib
│ └── capistrano
│ └── tasks
└── log
└── capistrano.log
如果你在你的ruby项目里面他会自动把上面的目录结构融合在相应的文件夹下。
(4)修改stage 如果有需要默认就是生成的production 以及staging,采用默认可以跳过这步,直接去设置deploy.rb这个文件里面的set,放开屏蔽加上自己的就可以了
修改stage set :stage_dir, 'config/deploy'
set :stages, ["iqiyi_bj_production","iqiyi_sh_production","youku_production",
"tencent_production"] 可以使用fetch(:stage) 获得相应的stage参数
(5)设置deploy.rb文件
set :application, 'xxxx'
set :repo_url, 'ssh://git@1xxxx'
set :branch, "master"
set :deploy_to, '/home/xx/xxx'
set :scm, :git
set :pty, true
set :keep_releases, 5
根据自己开发的不同增加设置
(6)测试部署
a、没有走第4步设置个性staging的可以直接cap production deploy
b、走第4步的 把production换成相应的 cap xxx_production deploy
(7)写task 版本不同语法格式还是有区别的,按照官方文档好点
3.x版本的
after :published,:start
task :start do
on roles(:all)do |host|
execute <<-EOF
cd "#{current_path}"
cd ..
BSE="/home/bidder/xxx/cabbage"
if [ -d $BSE ]
then echo "$BSE is exist"
else mv current cabbage
echo "success"
echo "$BSE"
fi
EOF
end
end
2.x版本的
task :start, roles: :app do
run "rm -rf /app/current/data"
end
服务器端产生的文件说明
current 是指当前版本, link 到 release 下的指定版本目录(默认为最新的 releases)
releases 每次部署都会产成一个目录存放项目源码, 目录个数由 :keep_releases 变量来控制
repo 项目的 .git 目录
shared 是项目中共享的内容, 不会随部署而改变
rails项目的 一些列子
https://segmentfault.com/a/1190000002490286
使用Capistrano3.5.0部署项目
猜你喜欢
转载自hhg08.iteye.com/blog/2305454
今日推荐
周排行