VirtualboxとVagrantとChef

    こんばんわ、加藤です。
    事情によりスライドシェアにまとめれませんでした。

    VirtualboxというOracle社が提供しているVirtualMachineのソフトウェアがあります。無料です。 https://www.virtualbox.org
    これがもう、まぁ〜便利で。21世紀すごいな!って思ってるわけですけれども。
    僕は会社にLINUXサーバを一本持っていて結構ショボめなので仮想化とかせずに各種確認環境をApacheのバーチャルホスト立てたりNGINXとかUnicornでポート変えてだしたりして作ってたんですけど、もうそういうぐちゃぐちゃした管理が必要ない!
    そもそもちょっとコード書き換えて確認するのにサーバにアップロードしてとか面倒くさい!
    ということでVirtualBoxです。
    手元で修正したファイルが、手元のマシンの中に構築されたUbuntu上で見れる。設定色々いじくりまくってわけわかんなくなったらさくっと削除してやり直し!(ロールバックもできます)
    フロントエンドの開発ならLiveReloadとかYoemanがいいかなーと思いますがバックエンド書くならVirtualboxです。(いや、まぁ世間的には当たり前に利用されているので今更ですけども)

    で、なんでこんなVirtualbox便利って思うかっていうと個人的には最近使い始めたVagrantの影響です。
    VagrantはVirtualboxのフロントエンドツールになっていてVirtualboxにインストールOSのイメージをBOXという形式で皆で共有してダウンロードしてインストールすることで手間を軽減し、更には自動化していこうというツールです。
    たとえば手元のMBPではVagrant自体はGEMSで配布されているので

    sudo gems install vagrant

    とかでインストールできます。その後は欲しいbox(http://www.vagrantbox.es)をvagrantupから探してきて

    sudo vagrant box add lucid64 http://files.vagrantup.com/lucid64.box

    な〜んてコマンドでboxをダウンロードして配置したら

    sudo vagrant init

    でまぁサーバがほぼ出来上がるという代物です。
    設定必要なんで

    vi Vagrantfile

    とかで編集してあげて

    利用するbox名や起動方法などを設定してあげるだけで出来上がりです!

    sudo vagrant up

    で仮想サーバが起動するので

    sudo vagrant ssh

    でシェルに入れるようになります。

    あとはChefとの連携もできるので

    knife cookbook create myrecipe -o cookbooks

    とかしてレシピをつくってレシピ流すとこまで自動化できちゃいます。
    これでチーム間での確認環境をそれぞれが持ちつつ、確認環境の違いで悩む。なんてことがなく進められます。これ地味に革命ですよね・・・
    もし万が一Xamppとかでやってる人はこっちに早めに鞍替えしたほうが依存関係の問題とかに頭悩ませるより早いと思うので良いと思います。
    Windowsでのやり方は知りません。