我已经安装了宝石capistrano的capistrano
而在我的应用目录我安装了帽子安装@H_502_3@
此命令包括deploy / production.rb和deploy / staging.rb以及config / deploy.rb@H_502_3@
set :stage,:production role :all,%w{seting@mydomain.com} server 'sub.mydomain.com',user: 'deploy',roles: %w{web app},my_property: :my_value set :ssh_options,{ :forward_agent => true,:port => 1754,:keys => %w(/home/seting/.ssh/id_rsa) }
这是我的deploy.rb@H_502_3@
set :application,'admin' set :repo_url,'git@bitbucket.org:username/myadmin.git' namespace :deploy do desc 'Restart application' task :restart do on roles(:app),in: :sequence,wait: 5 do # Your restart mechanism here,for example: # execute :touch,release_path.join('tmp/restart.txt') end end after :restart,:clear_cache do on roles(:web),in: :groups,limit: 3,wait: 10 do # Here we can do anything such as: # within release_path do # execute :rake,'cache:clear' # end end end after :finishing,'deploy:cleanup' end
最后当我运行cap生产部署@H_502_3@
cap aborted! seting /home/seting/.rvm/gems/ruby-2.0.0-p247/gems/net-ssh-2.7.0/lib/net/ssh.rb:215:in `start' /home/seting/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.0.0/lib/sshkit/backends/netssh.rb:156:in `ssh' /home/seting/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.0.0/lib/sshkit/backends/netssh.rb:68:in `upload!' /home/seting/.rvm/gems/ruby-2.0.0-p247/gems/capistrano-3.0.0/lib/capistrano/tasks/git.rake:11:in `block (3 levels) in <top (required)>' /home/seting/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.0.0/lib/sshkit/backends/netssh.rb:42:in `instance_exec' /home/seting/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.0.0/lib/sshkit/backends/netssh.rb:42:in `run' /home/seting/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-1.0.0/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute' Tasks: TOP => git:check => git:wrapper (See full trace by running task with --trace)
编辑 – 1@H_502_3@
另外我没有在我的服务器上执行任何特殊的安装来运行rails应用程序.我决定先将文件移动到服务器.是正确的方法吗?@H_502_3@
解决方法
您应该设置角色名称部署而不是设置,或其他方式.
set :stage,:production set :branch,'master' set :deploy_to,'/srv/www/server.com/' role :all,%w{deploy@server.com} server 'server.com',my_property: :my_value fetch(:default_env).merge!(rails_env: :production)
你可能想跑@H_502_3@
cap production deploy:check
检查你的配置.@H_502_3@
也没有部署:安装在capistrano 3.0@H_502_3@