ツール

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

更新日:

Vagrantのバージョン1.8からスナップショット機能が追加されました。スナップショットを使えば、仮想マシンのある時点の状態を保存/復元することができます。

例えばシステムに何か変更を加える場合でも、事前にスナップショットを取っておけば安心して作業ができます。

スナップショットを取るには2つの方法があります。

  • vagrant snapshot saveで名前付きのスナップショットを取得する。

    名前付きのスナップショットの復元は、vagrant snapshot restoreで行います。

  • 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© アナグマのモノローグ , 2022 All Rights Reserved Powered by STINGER.