Capistrano で Vagrant の仮想マシンにアクセス

Capistrano は、ssh でアクセスするので、他のサーバにアクセスするのとほとんど変わらない訳だが、Vagrant の特徴に合わせて設定する必要がある。設定ポイントとしては、

を指定すること。設定内容は、vagrant ssh-config コマンドで確認する。

Capfile設定例

# ユーザ名 と Port を指定
role :vagrant, '127.0.0.1', :user => 'vagrant', :port => 2222

# 秘密鍵の設定
ssh_options[:keys] = [
  "#{ENV['HOME']}/.ssh/id_rsa",
  "#{ENV['HOME']}/.vagrant.d/insecure_private_key"
]

後は何かタスクを追加して動作を確認。apache をリスタートしてみる。

task :apache_restart, :roles => :vagrant do
  sudo "/etc/init.d/apache2 restart"
end

コマンド実行

 $ cap apache_restart