logo icon

非エンジニアのためのサーバー構築。「Vagrant」で「VirtualBox」を簡単操作(CentOS 7)!

非エンジニアのためのサーバー構築。「Vagrant」で「VirtualBox」を簡単操作(CentOS 7)!

先日の「ローカルマシン上に「VirtualBox」で仮想環境を構築して「Tera Term」で接続」から、Nginxを導入してWebサーバーを立ち上げるところまでせっせと頑張っていたのですがうまく行かずに悩んでいたところ、「Vagrant使えばいいのに」との助言をいただきました。
話を聞けばその「べーぐらんと」というのを使えば誰でもさっくりサーバー構築できるとのこと。
乗るしかない、このビッグウェーブに!

Vagrantとは?

コマンドプロンプトからいい感じにVirtualBox(その他)を操作する何か。
サイトもかわいいです。

Vagrant導入の下準備

まず、VirtualBoxVagrantをインストールしておきましょう。
僕の場合はとりあえずどちらも最新のものをインストールしました。

ちなみに環境はWindows7です。

そして、VagrantにVirtualBoxの場所を教えてあげないといけないので、「コントロールパネル > システム > システムの詳細設定 > 環境変数」の「システム環境変数」に「VBOX_MSI_INSTALL_PATH」が設定されていることを確認して、

変数名:VBOX_INSTALL_PATH 変数値:%VBOX_MSI_INSTALL_PATH%

を追加してください(VirtualBoxの仕様変更により発生した作業のようです)。

いよいよVagrant導入

Vagrantでは「Box」というサーバー設定の塊のようなものを利用して、設定に則したサーバーを瞬時に構築します。
というわけで、たくさんのBoxがリストアップされている「Vagrantbox.esから目的のBoxを探します。 僕の場合はVirtualBoxにCentOS 7.0を入れたかったので、「CentOS7.0 x86_64 minimal (VirtualBoxGuestAddtions 4.3.14)」のURLをコピーしてきました。

https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box

次に、コマンドプロンプトを開き、仮想環境のファイルを保存するフォルダ(dev)に移動。

$ cd dev

上記では省略していますが、CドライブからDドライブに移動する場合は、

$ D:

のみで移動できます。

そして、任意の名前(以下では「testserver 」)のBoxを作って、先程のBoxを読み込みます。

$ vagrant box add testserver https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box

作ったBoxを指定して実行。

$ vagrant init testserver
$ vagrant up

と、ここで下記のようなエラーがでてきました。

Failed to mount folders in Linux guest. This is usually beacuse
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:


mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group apache | cut -d: -f3`,dmode=777,fmode=777 /vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g apache`,dmode=777,fmode=777 /vagrant /vagrant

僕はこのエラーを完全に見落として(というかエラーなのか何なのかもよくわからない英語の羅列としてスルーして)おり、vagrant upで普通にサーバーは作れるものの共有フォルダ機能が使えず、さらにvagrant haltやvagrant suspendしてから再度起動するためにvagrant upすると同じサーバーが新たに作りなおされる→最初のサーバーは二度と起動できずふたつめのサーバーが増える→何度やってもひたすら増える……、という悪夢のような経験をしました。

これはどうやらCentOS側の「VirtualBox Guest Additions」という共有フォルダ機能のためのツールのバージョンがVirtualBoxの相性の悪いバージョンになっているために起こるエラーだそうで、恥ずかしながらまだ詳しいことは理解できていませんが、とりあえず下記の方法で改善できます。

まずTeraTermでSSH接続。

$ vagrant ssh

上記でSSHで接続するための情報が得られます。
恐らく「root」か「vagrant」のどちらかのユーザで、パスワードはいずれも「vagrant」です。
接続できたらSSHから、

sudo /etc/init.d/vboxadd setup


Removing existing VirtualBox non-DKMS kernel modules [ OK ]
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module [ OK ]
Building the shared folder support module [ OK ]
Building the OpenGL support module [失敗]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions [ OK ]

上記のような表示が確認できたら、コマンドプロンプトに戻り、

$ vagrant halt
$ vagrant up

先ほどのエラーが消え、問題なく起動できたらCentOSのインストールと仮想化は成功です!

「さくっと」とか言ってますが上記のエラーを解決するのに一ヶ月弱掛かりました……。

Webサーバーのインストールやその他の設定はまた次回!