VirtualBoxとVagrantによる同一仮想環境の提供 その3
Vagrant を使って Virtual Box のイメージのスナップショットを同じ名前で録っていたら削除できなくなったので、イメージを全て削除して構築しなおすことにした。Virtual Box / Vagrant 内部ではスナップショット毎に個別の ID が割り当てられてはいるが、時系列が崩れたり、同じ先祖から複数の子孫イメージがあると削除できなくなるようだ(再調査は必要)。今後はスナップショットに日付と時刻を含ませることにする。
イメージの全削除
%homepath%\.vagrant.d\boxesフォルダ(Windowsの場合)にはイメージの雛型がある。これは削除する必要はない。%homepath%\VIRTUALBOX VMS にイメージとスナップショットが保存されているが、そのサブディレクトリを全て削除する。例えば %homepath%\VIRTUALBOX VMS\hogehoge というサブディレクトリがあれば、それを削除する。
今回は、スナップショットと最初のイメージを削除して構築し直すだけだから、Vagrant init コマンドで生成したファイルを全て残しておき、再利用する。
イメージ再作成
スナップショットの録り方
スナップショットのラベル名に日時を含めるためにバッチファイルを作成して実行することにした。
@echo off set yyyy=%date:~0,4% set mm=%date:~5,2% set dd=%date:~8,2% set time2=%time: =0% set hh=%time2:~0,2% set mn=%time2:~3,2% set ss=%time2:~6,2% set filename=rdb_%yyyy%%mm%%dd%_%hh%%mn%%ss% vagrant snapshot save %filename%
或いは短くこうしてもよい。
echo off set date1=%date:~-10,4%%date:~-5,2%%date:~-2,2% set time1=%time: =0% set time2=%time1:~0,2%%time1:~3,2%%time1:~6,2% set filename=rdb_%date1%_%time2% vagrant snapshot save %filename%
Linux や Mac などではシェルプログラムにするか次のように直接コマンドラインで打ち込んでもよいだろう。
$ vagrant snapshot save rdb_`date +%Y%m%d_%H%M%S`
参考:
www.atmarkit.co.jp
tipstour.net
p--q.blogspot.jp
ameblo.jp
date コマンド | コマンドの使い方(Linux) | hydroculのメモ