[Vagrant & VirtualBox] Vagrant: package, plugin

続きです。

独自のBoxを作成する

vagrant package

今の状態の仮想マシンからBox(テンプレート)を作成する。

% 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/myuser/projects/VB_CentOS2/package.box
% ls
Vagrantfile   package.box   provision.sh
% vagrant box add my_box package.box
Downloading or copying the box...
Extracting box...te: 10.5M/s, Estimated time remaining: 0:00:01)
Successfully added box 'my_box' with provider 'virtualbox'!
% ls ~/.vagrant.d/boxes
centos64/  my_box/    precise32/
% rm package.box
remove package.box? y

Box(テンプレート)が作成できました。

vagrant box remove

不要になったBoxを削除する。

% vagrant box list
centos64  (virtualbox)
my_box    (virtualbox)
precise32 (virtualbox)
% vagrant box remove my_box
Removing box 'my_box' with provider 'virtualbox'...
% vagrant box list
centos64  (virtualbox)
precise32 (virtualbox)

pluginを利用する

Sandboxモードを有効にする sahara をインストールしてみる。

% vagrant plugin -h
Usage: vagrant plugin <command> [<args>]
Available subcommands:
     install
     license
     list
     uninstall
     update
For help on any individual command run `vagrant plugin COMMAND -h`
% vagrant plugin install sahara
Installing the 'sahara' plugin. This can take a few minutes...
Installed the plugin 'sahara (0.0.15)'!

vagrant sandbox on

sandbox モードを on

% vagrant sandbox on
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
% vagrant sandbox status
[default] Sandbox mode is on

vagrant sandbox rollback

作業後、ロールバックで取り消します。

% vagrant ssh
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686)
 * Documentation:  https://help.ubuntu.com/
Welcome to your Vagrant-built virtual machine.
Last login: Fri Sep 20 05:54:18 2013 from 10.0.2.2
vagrant@precise32:~$ touch testfile
vagrant@precise32:~$ ls
postinstall.sh  testfile
vagrant@precise32:~$ exit
logout
Connection to 127.0.0.1 closed.
% vagrant sandbox rollback
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
% vagrant ssh
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686)
 * Documentation:  https://help.ubuntu.com/
Welcome to your Vagrant-built virtual machine.
Last login: Fri Sep 20 05:54:18 2013 from 10.0.2.2
vagrant@precise32:~$ ls
postinstall.sh

vagrant sandbox commit

sandbox での作業を確定(commit)させる。
ただし、仮想マシンを動かしたままだと時間がかかるため、事前に vagrant suspend などで止めておく。

vagrant@precise32:~$ touch commitfile
vagrant@precise32:~$ ls
commitfile  postinstall.sh
vagrant@precise32:~$ exit
logout
Connection to 127.0.0.1 closed.
% vagrant suspend
[default] Saving VM state and suspending execution...
% vagrant sandbox commit
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

vagrant sandbox off

sandbox モードを終了する。
上記と同じ理由で、仮想マシンを止めてから実行する。

% vagrant sandbox off
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
% vagrant sandbox status
[default] Sandbox mode is off