Vagrant Remote

http://blog.masuidrive.jp/2015/04/06/vagrant-remote/

リモートマシンでVagrantを実行するコマンド。

検索していくと、本家のIssuesでもvagrantをリモート実行する議論が行われていました。そこで紹介されているプラグインを試してましたが用途とは合いませんでしたし、バージョンアップの多いvagrantで使い続けられるか心配でした。

でもよく考えれば用途さえ限定すれば、リモート実行は難しい事じゃなのではないかと思い自分でvagrant-remoteコマンドを実装してみました。

https://github.com/masuidrive/vagrant-remote

まだ未完成のコマンドですが、とりあえず公開する事にしました。自分でもまだ使っていないので自己責任でお願いします。

Vagrantfileと同じディレクトリに下記の様な.vagrant-nodeファイルを置き、リモート実行するホストを指定します。あと同時にテンポラリディレクトリを指定します。

# .vagrant-remote
export REMOTE_NODE="user1@10.0.1.9"  # ユーザ名は省略できます
export REMOTE_PATH="/Users/masuidrive/tmp" # 指定しなくてもOK

リモート実行するノードはLinuxかOSXでvagrantをインストールしておいてください。OSXでのみテストしているので、Linuxで動かなかったらPull Requestをお待ちしてますw

config.vm.synced_folder ".", "/vagrant"
↓
config.vm.synced_folder (ENV['MOUNT'] || "."), "/vagrant"

これで、vagrant-remote upをすると、リモートノードにsshしてNFSでローカルフォルダをマウントしてvagrant upを実行します。

vagrant-remote sshでsshはできますが、今のところポートフォワーディングは行いません。そのうちやるかも。

vagrant-remote-up