Vagrantの備忘録
正直まだなにそれおいしいの状態だけど経緯としては、
- Middleman便利そうだし使ってみよかな。
- Rubyなのね、いい機会だしRubyちょっとやってみよかな。
- Ruby on Railsってのも聞いたことあるなあ。
- Vagrant使って仮想環境作るといいの?
みたいな流れでVagrantを知った。
とりあえずドットインストール見ながらひと通りやってみたのでメモ。 Middlemanはもうちょっとしてから試してみよう…。
1. Vagrantとは
仮想マシンを簡単に立ち上げるためのツールらしい。
2. VirtualBoxをインストール
公式サイトから環境に合ったパッケージをダウンロードしてきてインストールする。
3. Vagrantをインストール
同じく公式サイトから環境に合った最新版のパッケージをダウンロードしてきてインストールする。 以前はgemでインストール出来たらしいけど今(2013年9月5日現在)はパッケージ版がいいみたい。
4. Box(テンプレート)を追加
いろんなboxが公開されててここから一覧を見れるけど、CentOSを追加してみる。
$ vagrant box add centos64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box
5. boxが追加されたか確認
追加されたboxの一覧を見るにはvagrant box list
で確認できる。
$ vagrant box list
centos64 (virtualbox)
6. 仮想マシンを立ち上げる
仮想マシン毎にディレクトリを作る必要があるのでとりあえずはデスクトップに任意のフォルダ(ここではvagranttest)を作って移動。
$ mkdir ~/Desktop/vagranttest && cd ~/Desktop/vagranttest
任意のboxを選択して初期化する。
$ vagrant init centos64
初期化が完了すればいよいよ起動。
$ vagrant up
7. 仮想マシンの停止や再起動、削除をやってみる
# 状態確認
$ vagrant status
# スリープ
$ vagrant suspend
# 復帰
$ vagrant resume
# 終了
$ vagrant halt
# 起動・再起動
$ vagrant up
# 削除
$ vagrant destory
8. 仮想マシンに接続する
まずはssh接続。
※ちなみに上記でdestroyしている場合はもう一度vagrant up
しておく。
$ vagrant ssh
ログインできたらWebサーバをインストール。
$ sudo yum -y install httpd
インストール後にWebサーバを起動。
$ sudo servevice httpd start
9. Webページを表示させてみる
下記ディレクトリに移動。
$ cd /var/www/html
HTMLファイルを作成。
$ sudo vi index.html
適当なHTMLを作成後に一度仮想マシンからログアウトする。
$ exit
Vagrantfileでネットワークの設定を変更するためにVagrantfileを開く。
$ vim Vagrantfile
MacOSから仮想OSにアクセスするために、プライベートネットワークを使用するので該当する行をアンコメント。
config.vm.network :private_network, ip: "192.168.33.10"<
設定を変更したのでVagrantを再起動。
$ vagrant reload
再起動後にブラウザで192.168.33.10を叩いて先ほど作成したHTMLが表示されてればOK。
10. 共有フォルダを作る
毎回仮想マシンに接続してファイルを作るのは面倒なので、MacOS上で編集したファイルが仮想マシン上にも反映されるように共有フォルダを作ってみる。
MacOS上のVagrantfileがあるディレクトリと仮想マシン上の/vagrantディレクトリはリンクしているので、仮想マシンのWebサーバのドキュメントルートを/vagrantに設定する。
まずは仮想マシンにログイン後、先ほど作成したHTMLファイルが格納されたディレクトリ毎ごっそり削除。
$ vagrant ssh
$ sudo rm -rf /var/www/html
/vagrantが/var/www/htmlにリンクするようにシンボリックリンクを設定する。
$ sudo ln -fs /vagrant /var/www/html
一度仮想マシンからログアウトしてMacOS上で適当なHTMLファイルを作成する。
$ exit
$ touch index.html
$ vim index.html
ブラウザで確認して反映されていれば無事成功。
11. まとめ
今の自分にはあまり恩恵はないけど、いろんな環境をパパっと作ってテストしたい時にはすごい便利そうなのでぜひぜひ使っていきたい。ってわけでいつまで続くか分からんけどRubyやろ。