boxenで必要なものをいれてから、はじめてのvagrantまで。

Vagrant(Vagrant by HashiCorp)で遊ぼうと思い立ったのだけど、せっかくboxen入れたので、必要なものをとりあえずboxen経由で入れてみようかと。

ということで、まずboxen経由でvirtualboxVagrantをinstall

# ~/src/our-boxen/Puppetfileに追記
# 現在のところ、boxen入れると/opt/boxen/repoのシンボリックリンクが~/src以下に作られる
github "virthualbox", "1.0.2"

# ~/src/our-boxen/modules/people/manifests/{github-user-name}.pp
class people::{github-user-name} {
    include virtualbox

    package {
        'Vagrant1.2.2':
            provider => 'pkgdmg',
            source   => 'http://files.vagrantup.com/packages/7e400d00a3c5a0fdf2809c8b5001a035415a607b/Vagrant-1.2.2.dmg'
    }
}

# 上記のものをinstall
$ boxen

dmg指定でVagrantの現時点で最新1.2.2をいれてるのだけど、latestのaliasがあると便利だなぁ。あと、boxenで入れたアプリの削除とかアップデートとかどうなってるんだろうというのが気になったので、機会あったらコード追ってみよう。

ここまでで必要なものはそろったので、あとはVagrantを試してみる。いろいろやりたいけど、とりあえずhello worldまで。

# box追加
$ vagrant box add centos6.4-x86-minimal http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130309.box

# 初期化。
$ vagrant init
# できたVagrantfile編集してconfig.vm.box = "centos6.4-x86-minimal"に。

# instance立ち上げ
$ vagrant up

# とりあえずつないでみる
$ vagrant ssh

こんな感じでカジュアルにvm立てれると。便利。
Vagrantfileとかをgitとかで管理するときに、boxファイル自体は同管理するのがいいんだろ。これは後で調べよう。

複数台構成をVagrantで立ててみたり、Vagrantで立てたサーバをchefでセットアップしてみたり、capistranoとかでそこにdeployしてみたりとかはこれから試してみるつもり。あと、途中までセットアップしたboxを配る、みたいなのとかも。

【追記1】
config.vm.box_urlが指定で来て、ローカルにboxがない場合はそこ見にいってくれるっぽい。

【追記2】
Vagrantfileのあるディレクトリが/vagrantとしてマウントされていて、ファイルが共有される。地味に便利っぽい。