ツール

Vagrantのスナップショットで仮想マシンの状態を保存する

更新日:

Vagrantのバージョン1.8からスナップショット機能が追加されました。 スナップショットを使えば、仮想マシンのある時点の状態を保存/復元することができます。 例えば何かシステムに変更を加える場合でも、 事前にスナップショットを取っておけば安心して作業ができます。

スナップショットを取るには2つの方法があります。 1つはvagrant snapshot saveで名前付きのスナップショットを保存する方法です。 名前付きのスナップショットの復元は、vagrant snapshot restoreで行います。

もう1つはvagrant snapshot pushでスナップショットをスタックにプッシュする方法です。 この場合、復元はvagrant snapshot popで行います。

これら2つの方法を混ぜて使うのは安全ではありませんので注意しましょう。 また、vagrant destroyするとスナップショットは失われるのでこれも注意です。

名前付きスナップショットの保存と復元

スナップショットに名前を付けて保存するには次のコマンドを実行します。

vagrant snapshot save NAME

これはNAMEという名前でスナップショットを保存します。 復元するにはvagrant snapshot restoreを使います。

名前付きスナップショットの復元は次のコマンドを実行します。

vagrant snapshot restore NAME

これはNAMEという名前のスナップショットを復元します。

restoreのオプション

--[no-]provision
プロビジョナーを強制的に実行する(または実行を禁止する)。
--no-start
復元した後にゲストマシンを起動しない。

スナップショットのプッシュとポップ

スナップショットをプッシュするには次のコマンドを実行します。

vagrant snapshot push

これはスナップショットをスタックにプッシュします。 スタックにプッシュされたスナップショットを復元するには「vagrant snapshot pop」 を使います。

スナップショットのポップは次のコマンドで行います。

vagrant snapshot pop

popのオプション

--[no-]provision
プロビジョナーを強制的に実行する(または実行を禁止する)。
--no-delete
復元した後にスナップショットを削除しない。 したがって、再度popを実行すると同じ状態に復元される。
--no-start
復元した後にゲストマシンを起動しない。

スナップショットを一覧表示する

保存されたすべてのスナップショットを一覧表示するには次のコマンドを実行します。

vagrant snapshot list

スナップショットを削除する

スナップショットを削除するには次のコマンドを実行します。

vagrant snapshot delete NAME

これはNAMEで指定されたスナップショットを削除します。

VirtualBoxなどいくつかのプロバイダでは、最初に全ての子スナップショットを削除する必要があります。 Vagrant自体は何が子であるかなどは追跡していません。 従って最初に全ての子スナップショットを削除するのはユーザの責任です。 一般にスナップショットを取得した順序と逆の順序で削除すれば問題ないでしょう。

おわりに

スナップショットはいくつでも取得することができます。 便利な機能ですので、皆さんも使ってみてください。

-ツール
-

Copyright© アナグマのモノローグ , 2021 All Rights Reserved Powered by STINGER.