こんにちは
株式会社クラスアクト インフラストラクチャ事業部の大塚です。
Vagrantを使用して仮想環境を管理している場合、スナップショット機能を活用することで、環境を安全に変更し、問題が発生した際に簡単に元の状態に戻すことができます。本記事では、Vagrantのスナップショット機能を使った環境管理の手順を解説します。
スナップショットの作成
まず、現在のVagrant環境の状態を確認します。以下のコマンドを実行して、稼働中の仮想マシンを確認します。
shota@shota-20f5a2v5jp:~$ vagrant global-status
id name provider state directory
---------------------------------------------------------------------------------
61ff572 mypc virtualbox poweroff /home/shota/ドキュメント/vagrant_mypc
a258e08 mysrv virtualbox poweroff /home/shota/ドキュメント/vagrant_mysrv
9baf99a mycentos virtualbox poweroff /home/shota/ドキュメント/vagrant_mycentos
953be07 radius virtualbox running /home/shota/ドキュメント/vagrant_radius01
ここでは、radius
という名前の仮想マシンが稼働中であることがわかります。この仮想マシンに対してスナップショットを作成します。
スナップショットがまだ作成されていないことを確認するために、以下のコマンドを実行します。
shota@shota-20f5a2v5jp:~$ vagrant snapshot list 953be07
==> radius: No snapshots have been taken yet!
radius: You can take a snapshot using `vagrant snapshot save`. Note that
radius: not all providers support this yet. Once a snapshot is taken, you
radius: can list them using this command, and use commands such as
radius: `vagrant snapshot restore` to go back to a certain snapshot.
スナップショットが存在しないことが確認できました。次に、スナップショットを作成します。今回は、スナップショット名を20250216_snapshot
とします。
shota@shota-20f5a2v5jp:~$ vagrant snapshot save 953be07 20250216_snapshot
==> radius: Snapshotting the machine as '20250216_snapshot'...
==> radius: Snapshot saved! You can restore the snapshot at any time by
==> radius: using `vagrant snapshot restore`. You can delete it using
==> radius: `vagrant snapshot delete`.
スナップショットが正常に作成されたことを確認するために、再度スナップショットの一覧を表示します。
shota@shota-20f5a2v5jp:~$ vagrant snapshot list 953be07
==> radius:
20250216_snapshot
これで、現在の状態がスナップショットとして保存されました。
※GUIでもVirtualBoxアプリを起動することでsnapshotが取れていることを確認することが出来ます。
環境の変更
スナップショットを作成した後、仮想マシン内で必要な変更を行います。例えば、新しいソフトウェアをインストールしたり、設定を変更したりすることができます。
ロールバック
変更後に問題が発生した場合、スナップショットを使用して元の状態に戻すことができます。以下のコマンドを実行して、スナップショットを復元します。
shota@shota-20f5a2v5jp:~$ vagrant snapshot restore 953be07 20250216_snapshot
==> radius: Restoring the snapshot '20250216_snapshot'...
==> radius: Snapshot restored!
これで、仮想マシンはスナップショットを作成した時点の状態に戻りました。
スナップショットの削除
不要になったスナップショットは削除することも可能です。以下のコマンドを使用して削除します。
shota@shota-20f5a2v5jp:~$ vagrant snapshot delete 953be07 20250216_snapshot
==> radius: Deleting the snapshot '20250216_snapshot'...
==> radius: Snapshot deleted!
まとめ
Vagrantのスナップショット機能を活用することで、仮想環境の変更を安全に行うことができます。本記事では、以下の手順を解説しました。
- スナップショットの作成
- 環境の変更
- スナップショットを使用したロールバック
- スナップショットの削除
スナップショットを適切に活用することで、仮想環境の管理がより効率的かつ安全になります。特に、環境に大きな変更を加える前にはスナップショットを作成することを習慣化することで、トラブルを未然に防ぐことができます。ぜひ、日々の運用に取り入れてみてください!