VirtualBox + Vagrant
Ubuntu 12.04 Server に VirtualBox + Vagrant を入れ、instanceを作ったり消したり簡単にできるようになった。 素晴らしい。
VirtualBox インストール
VirtualBox のレポジトリを /etc/apt/sources.list に追加して、apt-getでインストール。Ubuntu じゃない他のlinuxやmacでやる場合は適当に変える。
$ sudo sh -c "echo 'deb http://download.virtualbox.org/virtualbox/debian precise contrib' >> /etc/apt/sources.list" $ sudo apt-get update $ sudo apt-get install virtualbox-4.2
Vagrant インストールしてinstance作ってそこに入る
前提としてVagrantはRubyで書かれているものなのでRubyをなにかしらの方法で入れておく。 僕はrvmを利用してruby1.9.3をroot権限が必要ないところにインストールしてある。
$ gem install vagrant $ vagrant box add precise32 http://files.vagrantup.com/precise32.box $ mkdir ~/vagrant-sample $ cd ~/vagrant-sample $ vagrant init precise32 $ vagrant up $ vagrant ssh
いくつか説明する。
- boxというのはvagrantでいうところのイメージファイルのこと。これをもとにインスタンスをつくる。
- 2行目のコマンドで http://files.vagrantup.com/precise32.box からboxをダウンロードしてきて、precise32 と言う名前で保存している。
- precise32(ubuntu12.04 32bit) をダウンロードしたが、http://www.vagrantbox.es/ から好きなものを選べる。
- vagrant init precise32 でカレントディレクトリに Vagrantfile という名前の設定ファイルを作る。そこには precise32というboxファイルを使うことが書いてある。その他の設定項目がある場合このファイルに書く。
- vagrant up でカレントディレクトリの Vagrantfile に基づいて、インスタンスを作り起動させる。
- vagrant ssh でインスタンスにsshで接続。
その他
- localのファイルをインスタンスに持っていきたいときは下のようにする。パスワードは多分vagrant
$ scp -P 2222 local_file vagrant@localhost:/home/vagrant
- インスタンスいらなくなったらそれを定義してるVagrantfileがあるところに移動して vagrant destroy
- boxファイルをつくることもできる。簡単なやり方はすでにあるものをカスタマイズして作るもので、
user@local $ cd ~/vagrant-sample user@local $ vagrant up user@local $ vagrant ssh vagrant@precise32 $ vi .bashrc ... vagrant@precise32 $ sudo apt-get install .... ... # その他自由に vagrant@precise32 $ exit user@local $ vagrant package --output mycustom.box user@local $ vagrant box add mycustom mycustom.box
でいい。次回は
$ mkdir ~/vagrant-sample2 $ cd ~/vagrant-sample2 $ vagrant init mycustom $ vagrant up $ vagrant ssh
でいける。