【Windows7(64bit)】VirtualBox+VagrantでCentOSの仮想環境構築


はじめに

MEAN環境でWEB開発を行いたいと思い、
まず初めにVirtualBox+VagrantでCentOSの仮想環境構築をしてみました。
パソコンによっては仮想環境に対応していなかったり、
VirtualBoxとVagrantのバージョンの相性によってエラーが起きて上手くvagrant upできなかったりと...
色々苦労したので後日エラーに関してまとめて載せたいと思います。

今回はその準備段階の仮想環境構築についての手順をまとめたので参考にして頂けたら幸いです。

1. インストール

WindowsにVirtualBoxとVagrantをインストールしていきます。

1-1. VirtualBoxのインストール

以下のURLよりVirtualBox 4.3.26 for Windows hosts x86/amd64を押下し、
Windows版をダウンロード・インストールします。
(今回は最新バージョンのVirtualBox 4.3.26をインストールしました)
https://www.virtualbox.org/wiki/Downloads

C:\Program Files\Oracle\VirtualBoxにインストールされ、
デスクトップにアイコンが追加されました。

1-2. Vagrantのインストール

以下のURLよりWINDOWSのUniversal (32 and 64-bit)を押下し、
Windows版をダウンロード・インストールします。
https://www.vagrantup.com/downloads.html

Vagrantのバージョンの確認

Windowsでコマンドプロンプトを開き、
vagrant --versionと書いて確認する。

コマンドプロンプト
C:\Users\user>vagrant --version
Vagrant 1.7.2

(2015.4.26現在の最新は1.7.2です)

2. Boxの追加

・以下のURLから追加したいBoxを確認することが出来ます。
 http://www.vagrantbox.es/
・今回はCentOS6.5を追加したいので、
 以下のようにコマンドプロンプトに書いて追加します。
 (CentOS65というBox名で追加します)

「追加方法」
vagrant box add {適当な名前} {boxファイルURL}

コマンドプロンプト
C:¥Users¥user> vagrant box add CentOS65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box

2-1. Boxが追加されているか確認する

コマンドプロンプトでvagrant box listと書いて

コマンドプロンプト
C:\Users\user>vagrant box list
CentOS65 (virtualbox, 0)

これで先程自分が付けた名前でBoxが追加されていることが確認できました。

Boxの削除

もし、vagrant box listで使用していないBoxが見つかり、
削除したいなぁと思ったときは、
下記のコマンドで削除できます。(CentOS7というBoxを削除した場合)
vagrant box remove CentOS7
参考にしたサイト:http://qiita.com/mochizukikotaro/items/52f4434c3f69c4ba1f54

3. 仮想マシンを作成

以下コマンドプロンプトで行っていきます。
・centosという名前のフォルダを作成します
 (今回はC:\Users\userに作成しました)

コマンドプロンプト
C:\Users\user> mkdir centos 

・作成したcentosに移動します

コマンドプロンプト
C:\Users\user> cd centos

・Vagrantfileを生成します

コマンドプロンプト
C:¥Users¥user¥centos> vagrant init CentOS65

・Vagrantfileが生成されているかを確認する

コマンドプロンプト
 C:¥Users¥user¥centos> dir

最後に、terapadなどのテキストエディタでVagrantfileを開きます。
#はその行をコメントアウトするということです。
そのため、以下のようなVagrantfileになっていればOKです。

Vagrantfile
Vagrant.configure(2) do |config|
  config.vm.box = "CentOS65"
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.synced_folder "../hello", "/var/www/html/hello"
end

 config.vm.network "private_network", ip: "192.168.33.10"#を削除し、
 config.vm.synced_folder "../hello", "/var/www/html/hello"を追加しました。

config.vm.synced_folder "../hello", "/var/www/html/hello"は、
ファイル共有を可能にさせるプログラムです。
これで、C:\Users\userにあるhelloというフォルダを仮想OS上でも見れるようになります。
詳しくは次の項目で説明します。

3-1. 共有フォルダの作成

CentOSの特定ディレクトリを、Windowsと共有することができます。

3-1-1. フォルダの作成

C:¥Users¥userにhelloという名前のフォルダを新規作成します。
terapadなどのテキストエディタを使用して、
helloフォルダ内に以下のようにindex.htmlファイルを作成します。

index.html
<h1>Hello Vagrant!</h1>

次の項目の「4. CentOSの起動」で、CentOSを起動した際、
/var/www/htmlにhelloというディレクトリがあり、
hello内にindex.htmlがあれば、
共有フォルダになっていることが確認できます。

4. CentOSの起動

ここから実際にCentOSの起動・接続・停止を行って行きます。

4-1. CentOS起動

コマンドプロンプトでvagrant upと書いて起動させます。

コマンドプロンプト
C:¥Users¥user¥centos> vagrant up

「参考」
vagrant up:仮想マシンの起動
vagrant halt: 仮想マシンの終了
vagrant status: 仮想マシンの状態確認
vagrant suspend: 仮想マシンの一時停止
vagrant reload: 仮想マシンの再起動
vagrant destroy: 仮想マシンの削除

5. SSH接続

SSH接続をする場合、
Macの場合はvagrant sshで接続できるのですが、
Windowsはできないため、TeraTermを使用して接続します。

5-1. Tera Termのインストール

下記のURLよりTeraTermをインストールします。
http://www.forest.impress.co.jp/library/software/utf8teraterm/
Tera TermとTera Term ポータブル版の2つがありますが、
Tera Termをダウンロード・インストールして下さい。

ダウンロード・インストールできたら
デスクトップにTera Termのアイコンが表示されます。

5-2. Tera Termからのアクセス

Tera Termを開きます。
下記のようにホストとTCPポートを入力してOKを押します。
ホスト:192.168.33.10
TCPポート:22

OKを押したらSSH認証の画面が出てきます。
下記のようにユーザー名とパスフレーズを入力してOKを押します。
ユーザー名:vagrant
パスフレーズ:vagrant

無事接続できると
[vagrant@vagrant-centos65 ~]$
が表示されます。

6. 共有フォルダの確認

「3-1. 共有フォルダの作成」で作成したフォルダの確認をしてみましょう。
SSH接続が出来ている状態で、
Tera Termのターミナル内にls -l /var/www/html/helloと打つと
index.htmlがあることが確認できます。

TeraTerm
[vagrant@vagrant-centos65 ~]$ ls -l /var/www/html/hello
total 1
-rwxrwxrwx 1 vagrant vagrant 23 Apr 25 08:56 index.html

7. Webサーバの起動

SSH接続が出来ている状態で、
Tera Termのターミナル内に以下のコマンドを打ち込んでいき、
httpd(Apache)をインストール・起動します。

[vagrant@vagrant-centos65 ~]$ sudo yum -y install httpd
[vagrant@vagrant-centos65 ~]$ sudo chkconfig httpd on
[vagrant@vagrant-centos65 ~]$ sudo service httpd start

7-1. Web表示の確認

ブラウザより http://192.168.33.10/hello/index.html にアクセスし、
作成したHTMLソースが正しく見えることを確認します。

終了するときは、
TeraTerm側ではexitで終了し、
コマンドプロンプト側ではvagrant haltで終了します。

以上で、
Windows7でVirtualBox+VagrantでCentOSの仮想環境構築が出来ました。

おわりに

今回は、共有フォルダのHTMLソースコードを表示させるだけでしたが、
今後は、新しくディレクトリを作成し、そこにMEAN環境を構築していきます。

----------追記---------------
以下に、MEAN環境を構築するための手順をまとめました。
Vagrantで起動したCentOS6.5にMEAN環境を構築した

参考サイト

「Windows上でVirtualBox+Vagrant+CentOSによる仮想環境構築」
URL:http://qiita.com/hiroyasu55/items/11a4c996b0c62450940f
「使ってないVagrant Boxを削除する」
http://qiita.com/mochizukikotaro/items/52f4434c3f69c4ba1f54