1. TOP
  2. vagrant
  3. vagrantサンドボックスモード

vagrantサンドボックスモード

vagrantサンドボックスモード

はじめに

前回、ホストOSにVirtualBox、Vagrantの環境が整えた。VagrantでVMを起動した後、環境構築を試行錯誤する必要があるが、sandboxプラグインのsaharaをインストールすれば、ゲストOSをロールバック出来るようになる。このプラグインはスナップショット機能を制御している。

前回

インストール

[code lang=cmd]
G:\003_Vargrant\PythonPrj>vagrant plugin install sahara
Installing the 'sahara' plugin. This can take a few minutes...
Fetching: vagrant-share-1.1.9.gem (100%)
Fetching: open4-1.3.4.gem (100%)
Fetching: Platform-0.4.0.gem (100%)
Fetching: popen4-0.1.2.gem (100%)
Fetching: sahara-0.0.17.gem (100%)
Installed the plugin 'sahara (0.0.17)'!

[/code]

使い方

以下の流れを繰り返して想定される環境を構築していく想定。
VM起動後に実行する。

  • sandboxモードをonする
  • ミドルウェアをインストールする
  • 問題があった場合は、ロールバックする
  • 問題がなければコミットしてsandmoxモードをoffする
# 構文 意味 説明
1 vagrant sandbox on サンドボックスモード有効 環境変更前に実行
2 vagrant sandbox rollback ロールバック 変更した状態をロールバック
3 vagrant sandbox commit コミット 変更した状態をコミット
4 vagrant sandbox off サンドボックス無効 環境変更後に実行
5 vagrant sandbox status 状態確認 サンドボックスの状態確認

コマンドサンプル

1. サンドボックスモード有効

[code lang=text]
### VM起動していない場合
G:\003_Vargrant\PythonPrj>vagrant sandbox on
[default] VM is not created

### 正常に起動
G:\003_Vargrant\PythonPrj>vagrant sandbox on
[default] Starting sandbox mode...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
[/code]

2. ロールバック

[code lang=bash]
### nginxをインストールして確認
vagrant@ubuntu:~$ dpkg -l grep nginx | tail -n 2
ii grep 2.25-1~16.04.1 amd64 GNU grep, egrep and fgrep
ii nginx 1.10.3-0ubuntu0.16.04.2 all small, powerful, scalable web/proxy server
vagrant@ubuntu:~$
[/code]

[code lang=text]
### ロールバック
G:\003_Vargrant\PythonPrj>vagrant sandbox rollback
[default] Rolling back the virtual machine...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
[/code]

[code lang=bash]
### nginxが存在しないことを確認
vagrant@ubuntu:~$ dpkg -l grep nginx | tail -n 2
dpkg-query: no packages found matching nginx
+++-==============-==============-============-=================================
ii grep 2.25-1~16.04.1 amd64 GNU grep, egrep and fgrep
vagrant@ubuntu:~$

[/code]

3. コミット

[code lang=bash]
### nginxをインストールして確認
vagrant@ubuntu:~$ dpkg -l grep nginx | tail -n 2
ii grep 2.25-1~16.04.1 amd64 GNU grep, egrep and fgrep
ii nginx 1.10.3-0ubuntu0.16.04.2 all small, powerful, scalable web/proxy server
vagrant@ubuntu:~$
[/code]

[code lang=text]
### コミットして再起動
G:\003_Vargrant\PythonPrj>vagrant sandbox commit
[default] Committing the virtual machine...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

G:\003_Vargrant\PythonPrj>vagrant reload
[/code]

[code lang=bash]
### nginxが存在することを確認
vagrant@ubuntu:~$ dpkg -l grep nginx | tail -n 2
ii grep 2.25-1~16.04.1 amd64 GNU grep, egrep and fgrep
ii nginx 1.10.3-0ubuntu0.16.04.2 all small, powerful, scalable web/proxy server
vagrant@ubuntu:~$
[/code]

4. サンドボックス無効

[code lang=text]
G:\003_Vargrant\PythonPrj>vagrant sandbox off
[default] Stopping sandbox mode...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
[/code]

5. 状態確認

[code lang=text]
###有効の場合
G:\003_Vargrant\PythonPrj>vagrant sandbox status
[default] Sandbox mode is on

[/code]

[code lang=text]
###無効の場合
G:\003_Vargrant\PythonPrj>vagrant sandbox status
[default] Sandbox mode is off

[/code]