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]