@nqounetです。
vagrantでchefを使って色々頑張っていたりするわけですが、疲れました。
同じ仮想環境で良ければ、ひとつ作ったものを使い回せば良い、ということに、最近ようやく気づきました。
仮想環境を自分自身で再利用する
Vagrantのboxを使う時は、元になる仮想マシン(box)がローカルに保存されます。
色々と試していたら、結構な数になっているかもしれません。
保存されているboxはvagrant box list
で見ることが出来ます。
1
2
3
4
5
6
7
|
$ vagrant box list
Berkshelf-CentOS-6.3-x86_64-minimal (virtualbox)
CentOS-6.4-i386-plenv (virtualbox)
CentOS-6.4-x86_64-plenv (virtualbox)
base (virtualbox)
base64 (virtualbox)
centos64_64 (virtualbox)
|
ここにあるboxは、Vagrantfileでbox_urlを指定しなくても利用できます。
自分自身で使うだけなら、このリストに登録(ローカルに保存)しておけば良い、ということです。
それをするには、vagrant package
を使います。
1
2
3
4
5
6
|
$ vagrant package
[default] Attempting graceful shutdown of VM...
[default] Clearing any previously set forwarded ports...
[default] Creating temporary directory for export...
[default] Exporting VM...
[default] Compressing package to: /Users/nobu/sandbox/vm-plenv/package.box
|
そうすると、カレントディレクトリにpackage.box
という名前で、現在のVMが保存されます。
あとは、それをvagrant box add
で名前をつけて追加してやれば良いです。
1
|
$ vagrant box add new-box package.box
|
こうすると、先ほどのVMがnew-box
という名前で保存され、vagrantから手軽に使えるようになります。
1
2
3
4
|
$ mkdir ~/vagrant-new-box && cd ~/vagrant-new-box
$ vagrant init new-box
$ vagrant up
$ vagrant ssh
|