Capistranoでファイル転送
簡単な使い方はわかったので、早速本来やりたいCapistranoでのファイル転送に取り組んでみましたが、どうも理解があやふやなせいか、思ったようなことが出来てませんが、これまでやったことについて自分のためのメモ
単なるファイル転送
最初はhttp://d.hatena.ne.jp/kdaiba/20090518/p1:title=を参考にして
set :user, "userid" role :test, "localhost" desc "upload file" task :upload!, :roles => :test1 do upload("target_file.txt", "/tmp", :via => :scp) end
みたいな感じでuploadを使うことを試したのですが、これだとファイルを1つ1つ指定する必要がある感じがしたので、とりあえずこの書き方は断念
Capistrano関連の情報はたいていRailsアプリケーション配置に関するものが多く、自分が欲しい情報はRailsと違うディレクトリ構造のものをそのままリモートに配置するというシンプルなものだったので、中々イメージした情報が見つからなかったのですが、そんな中でhttp://d.hatena.ne.jp/TrinityT/20101209/1291860209:title=というのを見つけたり、その後
http://tech.camobile.com/develop_environment/%E6%89%8B%E8%BB%BD%E3%81%AB%E5%AE%89%E5%85%A8%E3%81%AA%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%97%E3%81%9F%E3%81%84%E3%81%A8%E3%81%8D/656:title=というのを見つけてかなりイメージに近いものがヒットしました。
後者のブログを参考にすれば良いのかと思ってひとまずこんな感じのものを作りました
#config/deploy.rb require "rubygems" require "capistrano/ext/multistage" set :application, "job_search" set :scm, :git set :repository,"localhost:/path/to/#{application}" set :deploy_to,"/path/to/#{application}" set :deploy_via, :copy set :branch, 'master' set :copy_strategy, :export set :keep_releases, 5
#config/deploy/test_env.rb set :user, "userid" set :ssh_options, :port => "50022" role :server, "localhost"
#config/deploy/test_env.rb set :user, "userid" set :ssh_options, :port => "50022" role :server, "localhost"
#config/deploy/production.rb set :user, "userid" role :server, "xxxxxx"
ターミナルから
cap test_env deploy
とすれば、VirtualBox上の指定したパスに配置されていました。