Vagrantでラクラク仮想環境
はじめに
Ruby on RailsなどのWeb開発をする人にとってMacで開発するのがメジャーとなってきています。
ハッカソンなどのイベントでもMacBook Airを使っている人を多く見るでしょう。
しかしいざ本番環境にデプロイするといった場合、ほとんどがCentOSやUbuntuといった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