【Vagrant】スナップショット作成に失敗時の対処法

2024-09-18

よく検証でVagrantを使っています。
今回VMで検証を行う際に事前にスナップショットを作成して、
何か問題があったときに切り戻したかったので、下記コマンドでスナップショットを作成しようとしたところ、失敗したのでその解決までの経緯をご紹介します。

# vagrant snapshot save <スナップショット名>

実行環境

Windows 10

今回のスナップショット取得対象VM
CentOS 7.7
config.vm.box = “centos/7"

スナップショット作成時にエラーで失敗


c:\Vagrant\cent7>vagrant snapshot save savepoint1
> The machine with the name 'savepoint1' was not found configured for
> this Vagrant environment.

↑スナップショット名がvm-nameとしてエラーが出ている。

vm-nameを入れて再度試してみたが、同様のエラーで失敗。

c:\Vagrant\cent7>vagrant snapshot save cent7 savepoint1
> The machine with the name 'cent7' was not found configured for
> this Vagrant environment.

ヘルプ:

c:\Vagrant\cent7>vagrant snapshot save -h
> Usage: vagrant snapshot save `[options]` `[vm-name]` <name>
> 
> Take a snapshot of the current state of the machine. The snapshot
> can be restored via `vagrant snapshot restore` at any point in the
> future to get back to this exact machine state.
> 
> Snapshots are useful for experimenting in a machine and being able
> to rollback quickly.
>     -f, --force                      Replace snapshot without confirmation
>     -h, --help                       Print this help

↑ヘルプを見てもvm-nameはオプションなのでいらないはず。
ヘルプを見てもエラー原因が分からない。

global-statusからゴミファイルを削除してみる

調べてみると、global-statusに消したはずのboxがゴミとして残っていることがあるらしい。
調べたところ、ゴミファイルがあった。

c:\Vagrant\cent7>vagrant global-status
> id       name    provider   state    directory
> -------------------------------------------------------------------------
> 6f1dd56  default virtualbox stopping C:/Vagrant/ubuntu ←ゴミファイル
> f82ad64  default virtualbox poweroff C:/Vagrant/cent7

削除する。

c:\Vagrant\cent7>vagrant destroy 6f1dd56
>     default: Are you sure you want to destroy the 'default' VM? [y/N] y
> ==> default: Destroying VM and associated drives...

再度スナップショットを作成しようとするが、これでもダメ。

c:\Vagrant\cent7>vagrant snapshot save savepoint1
> The machine with the name 'savepoint1' was not found configured for
> this Vagrant environment.

vm-nameと出ているので、defaultがそれにあたると踏んだところ…

c:\Vagrant\cent7>vagrant snapshot save default savepoint1
> ==> default: Snapshotting the machine as 'savepoint1'...
> ==> default: Snapshot saved! You can restore the snapshot at any time by
> ==> default: using `vagrant snapshot restore`. You can delete it using
> ==> default: `vagrant snapshot delete`.

作成できた!

c:\Vagrant\cent7>vagrant snapshot list
> ==> default:
> savepoint1

スナップショット作成にはvm-nameが必要、デフォルトの名前は"default"

よく検証でVagrantを使っています。
今回VMで検証を行う際に事前にスナップショットを作成して、
何か問題があったときに切り戻したかったので、下記コマンドでスナップショットを作成しようとしたところ、失敗したのでその解決までの経緯をご紹介します。

# vagrant snapshot save <スナップショット名>

Vagrant

Posted by pike