色々と技術が複合してしまうので、それが初級者(私を含む)にとって、分かりにくいのだと思いました。
特に「Windows」ですと、Macよりも複雑になります。
(MacはUnixベースなので、親和性が高い)
とにかく、心が折れないように頑張りましょう。

そもそもVagrantとは?

「仮想環境構築ツール」と言っても、あまりピンと来ない人もいるかも知れません。

だいたいの場合、WEBサイト制作・開発をする場合、テスト環境で行います。
当たり前ですが、テスト環境では、できるだけ本番と同じ環境が望ましいです。
それは、どう用意したら良いでしょう。

レンタルサーバーを借りることがあるでしょうし、自分でサーバーを立てることもあるでしょう。
「XAMPP」という選択肢もあるでしょう。

そうは言っても、色々な環境を準備するのは、容易なことではありません。
色々な環境を擬似的にすぐに作れるものはないでしょうか。

Vagrantでは、それが可能です。

Vagrantを動かすために。

Vagrantを動かすためには、いくつかアプリケーションをインストールする必要があります。

  • VirtualBox
  • Vagrant
  • Cygwin

VirtualBox(バーチャルボックス)

インストールしたPC上に仮想的なPCを作成し、別のOSを実行できるアプリケーションです。

https://www.virtualbox.org/wiki/Downloads

インストール後は、環境変数にPATHを通す必要があります。

windows-vagrant-start

Vagrant(ベイグラント)

Vagrantが行ってくれるのは、仮想環境の構築や管理で、実際に仮想環境を動かすのはVirtualBoxです。
VirtualBox以外にも連携できるツールがいくつかあります。

http://www.vagrantup.com/downloads.html

Cygwin(シグウィン)

Windows上でUnixのような操作が可能になるアプリケーションです。
Vagrantの操作は、コマンドラインで行います。
DOSプロンプトでも操作はできますが、仮想環境にログインして操作する場合は不便です。
この際、入れてしまいましょう。
(かなりインストールに時間がかかった記憶があります)

https://cygwin.com/install.html

VagrantのBoxを手に入れよう

インストールが終わったら、仮想環境の元になるOSのイメージファイルを含むデータ「Box」を手に入れましょう。
自分で作成することもできますが、すでに先人が良いものを作っていますので、これを利用しましょう。

以前は、「Vagrantbox.es」という非公式サイトから探すのが主流だったようです。
最近は「Vagrant Cloud」という公式サイトができたので、ここからBoxを探すと良いでしょう。

https://vagrantcloud.com/discover/featured

Vagrantは、フォルダ単位で環境が用意されるので、仮想環境用のフォルダを用意しましょう。
今回は、「hashicorp/precise64」を入れようと思います。

cd 
mkdir precise64
cd precise64

「vagrant box add 」を実行すると、Boxのダウンロードが始まります。

vagrant box add hashicorp/precise64

ダウンロードが終わったらinitコマンドを実行します。

vagrant init hashicorp/precise64

フォルダを見ると、「Vagrantfile」ができているのが分かります。
ファイルがあれば、コマンドで仮想環境が起動します。

vagrant up

起動したら仮想環境にログインしてみましょう。
Vagrantはこれだけでログインできます。

vagrant ssh

その他のコマンド

vagrant halt シャットダウン
vagrant status 状態確認
vagrant destroy 削除
(Vagrantfileは消えない。再び起動すると初期状態になる)
vagrant suspend 一時停止
vagrant resume 復帰
vagrant reload 再起動
vagrant provision プロビジョンを反映

Webサーバーを構築しよう

せっかくなので、Webサーバーを入れてみましょう。
ログアウトしたらVagrantfileを開いて、追記します。

Vagrantfile

config.vm.network :private_network, ip: "192.168.33.10"
config.vm.provision :shell, :path => "shell.sh"

新しく「shell.sh」ファイルを作成し、下記のようにします。
実際は、自分の欲しい環境を記述します。
(上手に書けなかったので、引用させていただきました)

shell.sh

#! /bin/bash
sudo apt-get update
echo mysql-server mysql-server/root_password password root | sudo debconf-set-selections
echo mysql-server mysql-server/root_password_again password root | sudo debconf-set-selections
sudo apt-get install -y git-core curl wget mc build-essential python-software-properties
sudo apt-get install -y apache2
sudo apt-get install -y mysql-server mysql-client
sudo apt-get install -y php5 libapache2-mod-php5 php5-cli php5-mysql php5-curl php5-gd php5-mcrypt php5-xdebug

引用:
Getting started with Vagrant – automated dev servers deploy and provisioning > stdout.in Evgeniy Kuzminov IT blog

内容を反映させましょう。

vagrant provision

上手くいけば、アドレスにアクセスできます。

http://192.168.33.10/

MYSQLにもアクセスできます。
ユーザー:root
パスワード:root

本番はこれから

今回は、Vagrantだけで完結するようにしましたが、連携して便利の使えるツールがいくつかあります。
特に「Chef」が有名だと思いますが、使用することでもっと便利になります。
ただし、WindowsのCygwinで用意するのはかなり大変ですので、これからチャレンジする方は、覚悟してください。

では、そんな感じで、またねー。