引き続き

壊し方 – TEARDOWN

これまでのチュートリアルを通して、webサーバ開発環境として十分実用的な仮想マシンを作ることができた。いままで仮想マシン構築について学んできたが、ちょっと調子を変えて、例えば別のプロジェクトを進めたいとか、ちょっとランチに行ってくるとか、すぐに家に帰らないといけないとか、そんなときに開発環境をどうやってお掃除したらいいのか?についてしるす。

Vagrantでは、suspend, halt, destroyという3つの方法が有る。それぞれ賛否両論あるものだ。自分のやりたいことに一番マッチするものを選べば良い。

Suspend

vagrant suspendコマンドで仮想マシンをsuspendさせることができる。vagrant suspendでは、コマンド実行時の仮想マシンの稼働状況を保存して停止させる。また動かしはじめるときは、vagrant upを実行するだけでいい。前にとめたところから動かすことができる。suspendさせる一番のメリットは、停止起動にかかる時間がちょー短い、ということ。だいたい5~10秒あればいい。停止中もなおディスクスペースを消費していく。また、RAMの状態を補完するのでよりディスク領域を必要とする。

Halt

vagrant haltはOSのgracefully shutdownと仮想マシンのパワーオフを実行する。またブートさせたいときはvagrant upを実行すれば良い。haltさせるメリットは、きれいに仮想マシンを停止して、コンテンツデータを保護し、きれいに再起動させることができる、という点だ。停止中もなおディスクスペースを消費する、また、起動するときはコールドブートとなるために、いくらか時間がかかる。

Destroy

vagrant destroyはホストから仮想マシンの一切の痕跡を消し去ることができる。実行すると、仮想マシンの停止、電源のオフ、ゲストが使用していた(割り当てられていた領域)ハードディスクを消去する。再度、destroy後にマシンを動かすには、vagrant upをすればよい。destoryするメリットは、ホストになんらの形跡も残らない、ということ。仮想マシンが使用していたディスクスペースやRAMは解放されて、ホストはきれいな状態にもどる。vagrant upで再び起動させるのには時間がかかる。仮想マシンの再インポートと再プロビジョニングが必要になるからね。

再構築 – REBUILD

壊したプロジェクトをまた戻すとき、明日とか一週間後とか、はたまた一年後かとかに関係なく、vagrant upをすれば簡単にもどすことができる。vagrant up。それだけ。

Vagrantの環境は、Vagrantfileの内容に従って構築されるので、自分や同僚も同じVagrantfileを用意すれば単純にvagrant upをするだけでいつでも同じものを繰り返し作ることができる。(これがVagrant環境のフルライフサイクル、ということになるのかな。)

次で最後

プロバイダー – PROVIDERS

getting started guideでは、VirtualBoxしか使っていない。けれども、Vagrantはいろんなバックエンドプロバイダーの上で動かすことができる。例えば、VMware, AWSとかとか。プロバイダーごとの詳細なセットアップ方法も書いてあるので、そこを読んで。

プロバイダーをインストールして、そのプロバイダーにあわせてVagrantfileに何か変更を加えないといけないとか、そういったことは必要なくって、ただvagrant upを実行すればいい。そのときに、使用するプロバイダーの情報をフラグにのせればいい。
VMwareだったらこう。

vagrant up --provider=vmware_fusion

AWSだったらこう。

vagrant up --provider=aws

いちどプロバイダーを指定してvagrant upを実行すれば、他のvagrantコマンドを実行するときに、どのプロバイダーを使うのかをフラグ立てる必要はない。Vagrantが自動的にどのプロバイダーを使うのかを認識してくれる。いつも通りにssh, destroy…を実行すればいい。

guideは以上。

他の内容に興味があれば、プラグインの話とか、共有フォルダのカスタマイズとか、他のプロビジョニング方法についてとか、ドキュメントはあるから見てみるといい。と。