ホーム » ブログ » Vagrantで仮想サーバ構築

Vagrantで仮想サーバ構築

Vagrant


Vagrantを導入して仮想サーバーを作成し、NginxをインストールしてWEBページを表示させてみたのでメモ。


環境

Mac OS X10.8.4
Vagrant1.2.4
VirtualBox 4.2.16


1. Vagrantのインストール

Vagrant公式サイトからインストーラーをダウンロードしてVagrantをインストール。

インストールが完了したらvagrantのバージョンを確認。
$ vagrant -v
Vagrant version 1.2.4


2. VirtualBoxのインストール

仮想化ツールはVirtualBoxを使用しました。

VirtualBox公式サイトからインストーラーをダウンロードしてVirtualBoxをインストール。
NOTE
VagrantはVirtualBox以外にVMwareなども利用できるようです。

3. Boxを取得

仮想サーバーのテンプレートにあたるBoxを取得します。

今回は、A list of base boxes for Vagrant – Vagrantbox.esからCentOS 6.4のBoxを追加しました。

$ vagrant box add centos-6.4 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box

追加したBoxの一覧を表示。
$ vagrant box list
centos-6.4 (virtualbox)

追加したBoxを削除する場合。
$ vagrant box remove centos-6.4


4. Vagrantfileの作成

仮想サーバー毎にディレクトリを作成し、仮想サーバーの設定ファイルであるVagrantfileを作成します。
$ mkdir -p ~/vm/centos
$ cd ~/vm/centos
$ vagrant init centos-6.4


5. 仮想サーバーを起動

$ vagrant up


6. 仮想サーバーにログイン

$ vagrant ssh
NOTE
Vagrantで起動した仮想サーバーにはユーザーvagrantがデフォルトで作成されています。$ vagrant sshでログインするのはこのユーザーvagrantです。

また、ユーザーvagrantはsudoコマンドが実行できるようにも設定されています。

ちなみに、root パスワードは「vagrant」です。

こんな感じで、Vargrantを使うと拍子抜けするほど簡単に仮想サーバーを起ち上げることができてしまいました。

vagrantのコマンドは以下があります。他にも様々な機能がありますので、詳細はVagrant公式サイトを御覧ください。

$ vagrant up仮想サーバーを起動
$ vagrant status仮想サーバーの状態を確認
$ vagrant ssh仮想サーバーにログイン
$ vagrant halt仮想サーバーのシャットダウン
$ vagrant reload仮想サーバーの再起動
$ vagrant suspend仮想サーバーの一時停止
$ vagrant resume仮想サーバーの再開
$ vagrant destroy仮想サーバーを削除


続けて、WEBサーバー(Nginx)をインストールしてWEBページを表示してみます。


7. リポジトリの追加

[vagrant@localhost ~]$ sudo vi /etc/yum.repos.d/nginx.repo

/etc/yum.repos.d/nginx.repo
1
2
3
4
5
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

8. Nginxのインストール

[vagrant@localhost ~]$ sudo yum -y install nginx


9. Nginxを起動

[vagrant@localhost ~]$ sudo service nginx start

ここで手を抜いてファイアーウォールを切ります。
※外部に公開するサーバーでは適切にファイアーウォールを設定してください。
[vagrant@localhost ~]$ sudo service iptables stop
[vagrant@localhost ~]$ sudo chkconfig iptables off


10. Vagrantfileの編集

IPアドレスを指定して仮想サーバーにアクセスできるようにVagrantfileを編集します。

以下の行を見つけて、コメントアウトを解除(先頭の#を外す)。

~/vm/centos/Vagrantfile
1
# config.vm.network :private_network, ip: "192.168.33.10"

編集内容を反映させるため、仮想サーバーを再起動します。
$ vagrant reload

ブラウザを起ち上げて、192.168.33.10にアクセスします。

以下のようなWelcome画面が表示されたら成功です。



やったね。


11. Boxを作成

自分でBoxを作成することもできます。

$ vagrant package
[default] Attempting graceful shutdown of VM...
[default] Clearing any previously set forwarded ports...
[default] Creating temporary directory for export...
[default] Exporting VM...
[default] Compressing package to: /path/to/package.box

カレントディレクトリにpackage.boxという名前でVMがパッケージ化されました。あとはこのBoxを使用したい環境に登録してあげます。

$ vagrant box add mybox package.box
Downloading or copying the box...
Extracting box...te: 353M/s, Estimated time remaining: --:--:--)
Successfully added box 'mybox' with provider 'virtualbox'!

Boxの一覧を表示。
$ vagrant box list
centos-6.4 (virtualbox)
mybox      (virtualbox)

追加されてますね。

Vagrantfileの作成、仮想サーバーの起動はこれまでと同様です。
$ mkdir -p ~/vm/mybox
$ cd ~/vm/mybox
$ vagrant init mybox
$ vagrant up
$ vagrant ssh

NOTE

Boxはvagrant packageを実行するだけで簡単に作成できますが、私の環境ですと、事前に仮想サーバー側のネットワークインターフェースとMACアドレスのマッピング機能を無効にしておかないと、作成したBoxから仮想サーバーを起動した際に以下の様なエラーになってしまいました。

[default] Configuring and enabling network interfaces…
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

ARPCHECK=no /sbin/ifup eth1 2> /dev/null

仮想サーバー側でMACアドレスのマッピングを無効にしてからBoxを作成すればエラーにはなりませんでした。
$ sudo ln -s -f /dev/null /etc/udev/rules.d/70-persistent-net.rules
前の記事 «
次の記事 »