WindowsPCにWEB開発環境を構築するぞ
というわけで、Vagrant+VirtualBoxでVMをつくったメモ。
OSはCentOS6.5を選択。
① VirtualBoxインストール
- 「Window hosts」からダウンロード
- インストーラーを起動してインストール
② Vagrantインストール
- 「Windows」からダウンロード
- インストーラーを起動してインストール
- Windows再起動
③ boxファイルの登録
コマンドプロンプトを立ち上げ、以下のコマンドを打つ。
vagrant box add hogehoge https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
※ソースは http://www.vagrantbox.es/ から適したものを探す。
・コマンドの意味
vagrant box add {box名} {ソース}
登録が終わったら、下記コマンドで確認。
vagrant box list
④ Vagrantfile作成
ルートとなるディレクトリをつくり、そこに移動。
cd C:\path\to\hoge
以下のコマンドを実行。
vagrant init hogehoge
※box名は③で登録した名前
⑤ Vagrantfile編集
④のディレクトリに「Vagrantfile」というファイルができるので、テキストエディタで開く。
プライベートネットワークの行を編集してコメント外す。
config.vm.network "private_network", ip: "192.168.33.10"
同期フォルダの行を編集してコメント外す。(任意)
config.vm.synced_folder "C:/path/to/src/", "/var/www/html/"
これをやると対象のディレクトリがローカルとVMで同期されるので、
ソースファイルのアップロードのような作業が不要になる。
⑥ hosts追加(任意)
ブラウザアクセスしやすいようにhost名を指定する。
hostsをテキストエディタで編集。
C:\Windows\System32\drivers\etc\hosts
#追記
192.168.33.10 hogehoge
※⑤で指定したIP
動かしてみよう
VM起動
④のディレクトリで以下のコマンドを実行。
vagrant up
少し時間がかかる。
※VirtualBoxのアクセスを確認するUACダイアログが出たら許可。
色々出た後、
==> default: Machine already provisioned. ...
と出れば成功。
また、
vagrant status
で状態を確認できる。
VMに接続
起動が完了したら、WinSCP/Putty/TeraTermなどでSSH接続できる。
- ホスト:⑤で指定したIP/⑥で指定したhost名
- ユーザー:vagrant
- パスワード:vagrant
必要な初期設定をする。(とりあえずApache)
$ sudo yum update
$ sudo yum -y install httpd
$ sudo service httpd start
$ sudo chkconfig httpd on
ブラウザでも⑤のIP/⑥のhost名でアクセス可。
VM終了
④のディレクトリで以下のコマンドを実行。
vagrant halt
少し時間がかかる。
おまけなど
boxファイル作成
共有用にVMイメージをboxファイルとして作成できる。
VM終了後、④のディレクトリで以下のコマンドを実行。
vagrant package --output hoge.box
box導入側は③のソースをOSリンクではなくboxファイルを指定すればOK。
パーミッションについて
VM上の /home/vagrant 及び認証鍵のパーミッションを変えると正しく起動できなくなる。
次が正しいパーミッション。
- /home/vagrant => 700
- /home/vagrant/.ssh => 700
- /home/vagrant/.ssh/authorized_keys => 600
vagrantコマンド用プロンプト
いつもカレントディレクトリを移動しないといけないので、
そこにバッチファイルを用意しておいてそれを叩くことにしてみた。
@echo off
title Vagrant Prompt
cd /d %~dp0
prompt $G
cls
vagrant -v
echo.
echo Current Directory is: "%cd%"
echo.
echo ================================
vagrant status
echo ================================
echo.
cmd /q /k
goto :eof
念のため最初にVMの状態をチェックする。
立ち上がったプロンプトに vagrant up
打てばOK。
参考
Windows上でVirtualBox+Vagrant+CentOSによる仮想環境構築
Windows上にVirtualBox+VagrantでCentOS環境構築
Vagrantのインストール、設定手順