Vagrant の使い始めで便利なプラグイン2つ sahara, vagrant-vbguest

No Photo

肩掛けのカバンにノートパソコンを入れて持ち運ぶと体への負担が!みたいな話を聞いたのでバックパック(Cote&Ciel Rhine Flat Backpack for 15 Black)を買いました。本当は店頭で見てから買いたかったのですが2店舗見て、無かったのでAmazonで。スリムタイプを期待してましたが、それなりに大きくて固い感じです。背中のクッションのおかげで負担がかなり減って移動が楽になりました。

今日は、Vagrant を使い始めて便利だったプラグインを2つ紹介します。

プラグインについて

プラグインをインストールするとVagrantの機能を強化できます。インストールするには、例えばsaharaなら、プロンプトでvagrant plugin install saharaと実行します。

sahara - 仮想マシンの状態をロールバックできるようになる(VirtualBox専用)

sahara は Vagrant で sshログインしていろいろ変更を加えた後にロールバックして元の状態に戻すことができるようになるプラグインです。ロールバックできるのはvagrant sandbox onを実行した時の状態になります。 プラグインの動作についてはVagrantでLinuxの仮想マシンを起動した状態で以下のコマンドを実行して確かめることができます。

# サンドボックスモードにする
vagrant sandbox on
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

# mysql, mysql-serverパッケージをインストールする
vagrant ssh
$ sudo yum install mysql mysql-server
$ sudo yum list installed | grep mysql
mysql.x86_64          5.1.73-3.el6_5    @updates
mysql-libs.x86_64     5.1.73-3.el6_5    @updates
mysql-server.x86_64   5.1.73-3.el6_5    @updates
$ exit

# ロールバックする
vagrant sandbox rollback
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

# インストールしたことがなかったことになっているか確かめる
$ sudo yum list installed | grep mysql
mysql-libs.x86_64     5.1.71-1.el6      @anaconda-CentOS-201311272149.x86_64/6.5

sahara が便利なのは、プロビジョニング用シェルスクリプトを書いていたときです。 yumでソフトをインストールする前にvagrant sandbox onしておいて、コマンド追加→vagrant provision→コマンド追加→vagrant provisionの繰り返しでスクリプトを作っていくのですが、最後に通しでプロビジョニングが成功するかチェックするときにロールバックしてvagrant provisionするとスクリプトの検証ができます。

vagrant-vbguest ゲストOS用ソフトを更新する(VirtualBox専用)

Vagrant + VirtualBox では、共有フォルダを実現するために仮想マシンにGuest Additionsというソフトをインストールしています。このツールは共有フォルダや時刻の同期をしてくれるツールなのですが、ホスト側のVirtualBoxのバージョンと仮想マシン側のGuest Additionsのバージョンが合わない場合動作がおかしくなることがあります。(仮想マシン側のGuest Additionsが古い、という状況はよく起こります) そういったときに、1コマンドで仮想マシンのGuest Additionsをアップグレードしてくれるのが vagrant-vbguest です。以下のように使います。

# ゲストOSのGuest Additionsをアップグレードする
vagrant vbguest --do install
# インストールされているバージョンをチェックする
vagrant vbguest --status
GuestAdditions 4.3.10 running --- OK.

Vagrantを使っていてなぜか突然共有フォルダが動作しなくなったことが2度ほどあり、上記のコマンドで解決しました。 実務でvagrantを使うときは必須のプラグインですね。

まとめ

Vagrantを使い始めて、今はプロビジョニングをシェルスクリプトでやってます。なれたらChefも勉強するつもりですが、シェルスクリプトのプロビジョニングでもsahara が非常に役立ちました。また、vagrant-vbguestがあると、ゲストOSにインストールされているGuest Additionsというツールを簡単にアップデートできます。 今回、vagrant upと同時にhostsファイルを更新してくれるプラグインも紹介しようと思いましたが、Windowsで動作する上でUACの問題を解消できなかったので紹介しませんでした。hostsファイルのパーミッションを変更すれば動作するようですが、セキュリティレベルを下げてしまうことになると思いますので。そちらについてはうまい解決策が見つかれば紹介したいと思います。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ