VirtualBoxとVagrantで仮想環境を構築する

今日は我が家でRuby on Rails 勉強会を行いました。内容はRuby on Railsの開発環境の構築が中心でした。

まずは、仮想環境の構築から。

自分のPC上にソフトウェア開発環境を構築する際、新しい開発環境は古いバージョンとの相性が悪くて一部アンインストールしなければならない、そしたらこちらが動かなくなる。。。。全体が不安定になっちゃった!なんてことが起こりえます。そんなことを避けるため、PC上に仮想環境を構築し、その上に開発環境を構築します。

今回は仮想環境としてCentOSを立ち上げ、そこにRuby on Railsの開発環境を構築しました。

VirtualBoxとVagrantを使って仮想環境CentOSの構築を行います。バージョンは下記の通り。

  • VirtualBox 5.0.18 for OS X hosts
  • Vagrant 1.8.1
  • CentOS 6.7

以下、手順です。

1. VirtualBoxのインストール

VirtualBoxは、無料の仮想化ソフトウェアです。PC上に仮想的なPCを作成し、別のOSをインストールして動かすことができます。MacでWindowsを動作させたり、Windows上でLinuxを動作させたりできます。

VirtualBoxを使う利点は、ハードウェアとソフトウェアの相性を気にせず環境構築ができること、マシンのリソースをオンデマンドで操作できること、作成した環境が配布しやすくなることです。

VirtualBoxのダウンロードサイトからダウンロードしてインストールします。私のPC環境はMac OS Xなので、今回はVirtualBox 5.0.18 for OS X hostsをインストールしました。

2. Vagrantのインストール

Vagrantは、簡単に言うと、仮想環境を操作するためのツールです。Vagrantでは設定ファイルVagrantfileを使って仮想環境の構築が行われます。そのため、とても簡単に仮想環境の構築、管理、配布が行えます。今回は、Vagrantを使って、VirtualBox上にCentOSを起動します。

VagrantはVagrant公式サイトのDownloadボタンから。今回はMac OS X向けをダウンロードし、Vagrant 1.8.1をインストールしました。

3. VagrantでVirtualBox上にCentOSを立ち上げる

PC上でターミナルを起動します。ホームディレクトリにVagrant用のディレクトリ(Vagrant)を作り、その中にCentOS用のディレクトリ(CentOS)を作ります。

mkdir -p Vagrant/CentOS

次に、Vagrantの初期化を行います。ディレクトリVagrant/CentOSに移動し、下記のコマンドを入力します。vagrant initは初期化コマンドです。bento/centos-6.7はBoxの名前です。Vagrantでは仮想環境をBoxとして管理します。ここでは構築したい環境とそのバージョン(bento/centos-6.7)を指定しています。bentoと付加することで、仮想環境のイメージのダウンロード、vagrantの初期化を行ってくれます。

cd Vagrant/CentOS
vagrant init bento/centos-6.7

初期化が成功すると、ディレクトリ内にファイルVagrantfileが作成されています。このファイルを開いて29行目のコメントアウトを解除します。これは、仮想環境のIPアドレスを固定するために行います。

configvm_ip

図:コメントアウトを解除したところ

ここまでで、仮想環境の立ち上げ準備の完了です。

下記のコマンドで、VirtualBox上にCentOSが起動します。

vagrant up
vagrant_up

図:vagrantを使ってVirtualBox上のCentOSを起動

起動完了したら、仮想環境へsshログインしてみましょう。Vagrantからの場合、下記のコマンドでログインできます。

vagrant ssh

vagrant_ssh

ログインできました。

仮想環境へのログインは先ほど設定した固定IPを指定してもログインできます。この時、ユーザ名はvagrant、パスワードも同じです。

ssh 192.168.33.10 -l vagrant

起動した仮想環境をシャットダウンするコマンドはvagrant halt。仮想環境の状態を確認するコマンドはvagrant statusです。

vagrant_halt

図:仮想環境の停止、状態確認

4. CentOS上に自分のアカウントを作る

ここから先は、必要な人だけ。立ち上げたCentOS上で開発を行う際に、ユーザ名vagrantで行う場合は必要ありません。

CentOSにログインし、下記のコマンドで、スーパーユーザになり、アカウントの作成(ここではyukaをusersグループに追加)、パスワードの設定を行います。

su -
adduser yuka -g users
passwd yuka

visudoで設定ファイルsudoersを変更します。これは、後々RubyとRailsの環境インストールの際にユーザyukaがroot権限を持てるようにするために行います。

visudo

下記はファイルの編集箇所です。

user_alias

root_admin

User_Aliasで先ほど作ったユーザ(yuka)を指定します。ADMINSにrootと同等の権限を付与します。

5. 仮想環境の構築は完了!

次はRuby on Railsの環境構築。これについては河野義広氏が記事にまとめてくれました。「CentOS 6.7にRails 4.2.6をインストールする手順」をご参照ください。