Vagrantをリモートで使いたい (けど妥協した)
VM で開発用のサーバを構築するにあたって、開発用PCではなく他の高スペックPCを母艦にしたいよねーという話。*1
で、とりあえず「vagrant リモート」でググってみれば、やはり同じことを考える人がいたようだ。
VagrantでリモートのVirtualboxを実行するvagrant-remoteを作ってみました - @masuidrive blog
vagrant-remote
公開されているスクリプトを拝見すると、アイディアとしては ssh でつないで vagrant コマンドを叩いているようだ。
なるほどと思いつつも、母艦にしたい PC に vagrant をインストールしたくない、コマンド実行のたびに ssh 接続しているので時間かかりそう、ということで残念ながらこのスクリプトは見送ることにした。
さてどうしたものかと考えてみたところ、自分の要件としては
- 母艦に ssh 接続は可能
- VM の設定、OS のインストール、プロビジニングは手動で行う
- 基本的にひとつの VM を使い続ける(破棄して作り直したりはしない)
- VM の起動・終了・スナップショットが取れれば充分
- 対象の VM ソフトは VirtualBox のみ
くらいだったので、「あれ? これって母艦に ssh でつないで直接 VirtualBox のコマンド叩けば良くね?」ということに気が付いてしまった。
ただ、VirtualBox のコマンドを覚えるのはちょっとしんどいので、さくっと vagrant 風の簡単なラッパースクリプトを作ってみた。
使い方としては、母艦の適当なフォルダにダウンロード*2して (ssh 経由で) 実行するだけ。
Usage: ./vbox list up [--gui] <vm> down <vm> suspend <vm> sandbox [list|begin|rollback|commit] <vm>
これで簡単に Infrastructure as Code を試せるようになったので、次はセットアップ用の playbook を書かねば…。