- 更新日: 2014年7月11日
- Vagrant & Chef
Vagrant に sahara プラグインをインストール
Chef の Recipe をあーでもないこーでもないと試す中で、VM の状態をロールバックとかできると楽だな〜と考えたのですけど、sahara というプラグインを使うとできるらしい。ということでインストール。
https://github.com/jedi4ever/sahara
インストールと使い方
以下のコマンド一発で sahara をインストールできます。
1 2 3 |
$ vagrant plugin install sahara |
sandbox モードをスタート。
1 2 3 |
$ vagrant sandbox on |
vagrant で VM にログインして、何か変更を加える。
1 2 3 4 5 6 7 |
$ vagrant ssh [vagrant@localhost ~]$ touch ~/hoge.txt [vagrant@localhost ~]$ ls ~ hoge.txt [vagrant@localhost ~]$ exit |
ロールバックする。(先ほどの変更をなかったことにして、直前の状態に戻す。)
1 2 3 4 5 |
$ vagrant sandbox rollback $ vagrant ssh [vagrant@localhost ~]$ ls ~ |
おお、hoge.txt がない状態に戻っています。
変更を加えてコミットする。(変更を恒久的に確定する。)
1 2 3 4 5 6 7 8 9 |
[vagrant@localhost ~]$ touch ~/hoge.txt [vagrant@localhost ~]$ exit $ vagrant sandbox commit $ vagrant ssh [vagrant@localhost ~]$ ls ~ hoge.txt [vagrant@localhost ~]$ exit |
commit はあほみたいに時間かかりますね…。
sandbox モードを抜け出る。
1 2 3 |
$ vagrant sandbox off |
これも時間かかる…。
commit は permanently
一旦 commit した後は、rollback はできないみたいです。何かできる方法はあるかもしれないけど、普通に vagrant sandbox rollback だけでは戻りませんでした。
Github の Readme に以下のようにあるので…
$ vagrant sandbox commit
commit したら、その状態が恒久的に保存されるという意味だろう。
sandbox off, sandbox commit は時間がかかるので、一度 Vagrant を停止してから行うと多少ましになるらしいです。
1 2 3 4 |
$ vagrant halt $ vagrant sandbox commit |
あと、参考リンクにある off の挙動も注意が必要そう。以上です。
- – 参考リンク –
- vagrantの便利に使えるプラグイン6選 – Qiita
- saharaでVagrantの状態管理 – Qiita
- Vagrant Saharaのcommitせずoffしたら元に戻るという誤解 – Qiita
- Vagrant & Chef の関連記事
- Vagrantで使うVirtualBoxのVM(仮想マシン)を外付けHDDに移動
- Chefで/etc/sysctl.confのkernel.panicを設定
- Chefでtelnetをインストール
- Chefでyumリポジトリを追加する設定
- Chef で iptables の設定
- ChefでSSH接続用の公開鍵をサーバーに設置
- nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
- Chef Recipe でユーザー・グループを作成
- Chef Recipe で CentOS のネットワーク・ホストを設定
- NetworkManager 他不要なパッケージを削除する Chef Recipe
Leave Your Message!