Vagrantでラクラク仮想環境

はじめに

Ruby on RailsなどのWeb開発をする人にとってMacで開発するのがメジャーとなってきています。
ハッカソンなどのイベントでもMacBook Airを使っている人を多く見るでしょう。

しかしいざ本番環境にデプロイするといった場合、ほとんどがCentOSUbuntuといったLinuxを実行環境とする場合が多いです。
環境によって動作が多少変わってくることもゼロではありません。
そのため本番環境と同じOSの仮想マシンをローカルのマシンに作り、そこで動作確認するということが重要です。

Vagrantとは?

Vagrantは、OracleのVirtual Boxという仮想マシンを動作させるソフトを用いて、容易に環境構築、運用できるパッケージです。
今回はVagrantを用いた仮想マシン構築を紹介します。
Virtual BoxはWindowsやLinuxにも対応しているので、WindowsやLinuxでも同様に動かすことができます。

インストール

まずはVirtualBoxとVagrantをインストールします。

VirtualBox

Downloads – Oracle VM VirtualBox から自分のOSに合ったものをダウンロードしてインストールします。

Vagrant

Vagrant - Downloads から自分のOSに合ったものをダウンロードしてインストールします。

仮想マシンを作成

仮想マシンは本番環境と同じ物を指定します。このサイトに様々な設定のOSが用意されているので、本番環境に近いものを選びましょう。

A list of base boxes for Vagrant - Vagrantbox.es

今回はUbuntu precise 32を選んでみましょう。

$ vagrant box add precise32 http://files.vagrantup.com/precise32.box

作業ディレクトリ作成と設定ファイル

適当にvagrant用の作業ディレクトリを作成しておきます。さらにvagrant initを実行します。

$ mkdir ~/Documents/vagrant_test
$ cd ~/Documents/vagrant_test
$ touch hello_world.rb  // 適当なファイルを置いておく
$ vagrant init precise32

このコマンドによりVagrantfileという名前の設定ファイルが作成されます。このファイルは仮想マシンの起動設定を記述するrubyファイルとなっています。
例えば

  # config.vm.boot_mode = :gui

というコメントアウトされた行は仮想マシンGUIモードで起動する設定で、この行のコメントアウトを外すと起動とともに画面が表示されるようになります。
今回は特に設定はいじらずそのままで利用します。

仮想マシンの起動

仮想マシン

$ vagrant up

で起動します。

[default] VM booted and ready for use!
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant

というメッセージが出たら起動が完了しています。
この仮想マシンへのssh接続は

$ vagrant ssh

を打つだけ!
このコマンドによりvagrantというユーザー名で仮想マシンにログインすることになります。
さらにこのユーザーは既にsudo権限を持っていてパスワードを入力する必要がなく、仮想マシンを操作する上でとても便利です。

$ whoami
vagrant
$ sudo pwd
/home/vagrant

仮想マシンに入ったら /vagrant ディレクトリを見てみましょう。

$ ls /vagrant
hello_world.rb  Vagrantfile

先ほどさり気なく作ったhello_world.rbを見ることができます。Vagrantは vagrant init したディレクトリを仮想マシン内の /vagrant に共有してくれるのです。
ここまで見ただけでも十分Vagrantの便利さを感じるはずです。

仮想マシンをシャットダウンするには

$ vagrant halt

とします。

またこんど、chefを使った自動環境構築について書きます。



krswfmy