使用Capistrano3.5.0部署项目

(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

猜你喜欢

转载自hhg08.iteye.com/blog/2305454
今日推荐