jekylog

All doggs wanna be a Geek

Vagrantの備忘録

正直まだなにそれおいしいの状態だけど経緯としては、

  1. Middleman便利そうだし使ってみよかな。
  2. Rubyなのね、いい機会だしRubyちょっとやってみよかな。
  3. Ruby on Railsってのも聞いたことあるなあ。
  4. 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やろ。

参考リンク

Fork me on GitHub