読者です 読者をやめる 読者になる 読者になる

TitaniumMobile勉強記

Web系エンジニア向けのキャリアアドバイザーやってましたが現在はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連(Node.js、Titanium)あたり

Capistranoでファイル転送

Capistrano Linux

簡単な使い方はわかったので、早速本来やりたい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上の指定したパスに配置されていました。