2013年11月4日月曜日

Windows8 Proにvargrantを入れてみる(その2)

前回はvagrantで仮想OSを起動するところまで実施。Hyper-Vとの共存で手こずった。
その後何かと触っていると気になった点を挙げておこう。

・ゲストOSにnetworkを追加してみる

 今回ネットワークはデフォルトのフォワード構成を使っているわけですが、フォワードだと何かを
 面倒なので、ブリッジモードで通常のネットワークにつながるNICを追加してみる。

 1.VirtualBoxのオプション追加

 2.Vagrantfileを修正
  mitty# cd ~/vagrant/svr11
  mitty# vim Vagrantfile
   ===
  config.vm.network :public_network
   ===
  mitty#

 これで起動時にeth1が追加される。DHCP環境であれば、eth1にアサインされたIPでアクセスを
 することができる。

 (2013/11/16)
 IPを固定にするには、以下のように修正すればよいことがわかりました。

   ===
  config.vm.network :public_network ,ip: "x.x.x.x"


   ===

 
 これでTeraTermでもいけますね。便利。

・作業状態の保存を試みる

 vagrantで起動した仮想OSの作業を中断したい時(hibernate)、ゲストOSをsuspendした状態で、
 ホストOSの再起動をしてみると、なぜか再起動後にゲストOSが認識できなくなる(VirtualBoxに
 は残っているが、vagrantコマンドでは認識しない)。
 無理やりvagrant upで起動すると新規でゲストOSが起動される。。VirtualBox上に構築されている
 OSをvagrantに取り込む方法もわからないため、、再構築するしかない。
 (誰か教えてほしい・・)

 ちなみにホストOS停止前に、ゲストOSを停止した場合は、今のところ問題はないようです。

 これだと作業途中を保存できないんだよな~

 (2013/11/06)
 取り込む方法がありました。vagrantによって構築したゲストOSだけかもしれませんが、、

 svr11が起動できなくなったと想します。

 1.ゲストOSのIDを確認

 mitty# cd ~/VirtualBox\ VMs/svr11_default_1383543354
 mitty# less *.vbox

  <VirtualBox xmlns="http://www.innotek.de/VirtualBox-settings" version="1.12-windows">
    <Machine uuid="{4c9d39f8-3e2e-4eab-89f3-74c952d624b0}"  
  ・
  ・
  ・

 上記のMachineタグのuuid属性の値を確認します。

 2.svr11とゲストOSのIDの紐づけ

 mitty# cd ~/vagrant/svr11/.vagrant/machines/default/virtualbox
 mitty# echo 4c9d39f8-3e2e-4eab-89f3-74c952d624b0 > id
  mitty# cd ~/vagrant/svr11/

  mitty# vagrant up

 起動できれば終了!

・vagrantコマンドのデバッグ

 mitty# VAGRANT_LOG=INFO vagrant up


ゲストOSをある時点までrollbackするためのplug-inの「sahara」を入れてみる。

 
 1.saharaのインストール

 mitty#  vagrant plugin install sahara

 Installing the 'sahara' plugin. This can take a few minutes...
 Installed the plugin 'sahara (0.0.16)'!


 2.sandboxを有効にする
 sandboxにしたい環境に移動し、on(有効)にする。

 mitty#  cd ~/vagrant/svr11
 mitty#  vagrant sandbox on

 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%


 mitty#  vagrant sandbox status

 [default] Sandbox mode is on

 3.rollback/commitを試す

 ・svr11の書き込みをrollback



 mitty#  cd ~/vagrant/svr11
 mitty#  vagrant sandbox on
 mitty#  ssh svr11
  # touch a
  # logout
 mitty#  vagrant sandbox rollback
  
 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

 mitty#
 mitty#  ssh svr11
 #  ls
 #

 なくなった。成功。ちなみに

 mitty#  vagrant sandbox status

 [default] Sandbox mode is on

 sandboxは有効な状態のままでした。

 ・svr12の書き込みをcommit


 mitty#  ssh svr11
  # touch a
  # logout
 mitty#  vagrant sandbox commit

 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

 mitty#

 成功はしたものの、時間がかかる。suspend/haltしておくと早い。

 4.sandboxを無効にする

 mitty# vagrant sandbox off


 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

 mitty#

 ちなみに変更したのちにcommit/rollbackをしないまま、offにすると、commitされたことになる
 ようです。他のサイトではrollbackと書かれていたりしたので、Versionによって動きが異なるかも
 しれません(要注意)。

ゲストOSをsnapshot取得のためのplug-inの「vagrant-vbox-snapshot」を入れてみる。

 1.vagrant-vbox-snapshotのインストール

 mitty# vagrant plugin install vagrant-vbox-snapshot

 Installing the 'vagrant-vbox-snapshot' plugin. This can take a few minutes...

 Installed the plugin 'vagrant-vbox-snapshot (0.0.4)'!

 2.snapshotを取得してみる

 snapshotに名前が付けられるので、「init」という名前で作成してみる。


 mitty#  cd ~/vagrant/svr11
 mitty# vagrant snapshot take init


 Taking snapshot init
 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

 mitty# vagrant snapshot list 

 Listing snapshots for 'default':
   Name: init (UUID: ce8054c3-0914-4548-a72b-d929cfda5589) *

 mitty#  

 initという名前のスナップショットがあることがわかる。

 3.snapshotを戻してみる

 最後に取得したsnapshotに戻してみる。


 mitty#  ssh svr11

 # touch e
  # logout
 mitty# vagrant snapshot back


 0%...10%...20%...30%...40%...50%...Restoring snapshot ce8054c3-0914-4548-a72b-d929cfda5589
 60%...70%...80%...90%...100%
 Starting restored VM
 [default] Resuming suspended VM...
 [default] Booting VM...

 mitty#  ssh svr11
 #  ls
 # a b c d

 eがなくなった。戻ったっということだ。ちなみにsnapshot(init)は残ったままだ。

 4.snapshotを任意の時点に戻してみる

 mitty#  ssh svr11

 # touch e
 # logout

 mitty# vagrant snapshot take modified

 Taking snapshot modified
 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

 mitty# vagrant snapshot list

 Listing snapshots for 'default':
   Name: init (UUID: ce8054c3-0914-4548-a72b-d929cfda5589)
      Name: modified (UUID: 314b3d67-c4e5-4d40-a030-fa6e2f919c6b) *

 2回目のsnapshot(modified)を取得した。

 mitty#  ssh svr11

 # touch f
 # logout
  
 まずはsnapshot(modified)へリストアしてみる。

 mitty# vagrant snapshot go modified

 Powering off machine a7c0eae6-677d-4322-a8f5-9c4a1b6f9b22
 0%...10%...20%...30%...40%...50%...Restoring snapshot 314b3d67-c4e5-4d40-a030-fa6e2f919c6b
 60%...70%...80%...90%...100%
 Starting restored VM
 [default] Resuming suspended VM...
 [default] Booting VM...

 mitty#  ssh svr11

 # ls
 a b c d e
  # logout

 fがなくなっており、modifiedの時点まで戻ったことが確認できた。さらに、initの時点まで
 戻してみる。

 mitty# vagrant snapshot list

 Listing snapshots for 'default':
   Name: init (UUID: ce8054c3-0914-4548-a72b-d929cfda5589)
      Name: modified (UUID: 314b3d67-c4e5-4d40-a030-fa6e2f919c6b) *

 mitty# vagrant snapshot go init

 Powering off machine a7c0eae6-677d-4322-a8f5-9c4a1b6f9b22
 0%...10%...20%...30%...40%...50%...Restoring snapshot ce8054c3-0914-4548-a72b-d929cfda5589
 60%...70%...80%...90%...100%
 Starting restored VM
 [default] Resuming suspended VM...
 [default] Booting VM...

 mitty#  ssh svr11

 # ls
 a b c d
 # logout

 おぉー、もどった。

 mitty# vagrant snapshot list

 Listing snapshots for 'default':
   Name: init (UUID: ce8054c3-0914-4548-a72b-d929cfda5589)
      Name: modified (UUID: 314b3d67-c4e5-4d40-a030-fa6e2f919c6b) *

 なるほど。modifiedはまだ残ったままですね。
 
 mitty#  ssh svr11

 # touch g
 # logout
  
 mitty# vagrant snapshot take modified

 Taking snapshot modified2
 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

 mitty# vagrant snapshot list

 Listing snapshots for 'default':
    Name: init (UUID: ce8054c3-0914-4548-a72b-d929cfda5589)
       Name: modified (UUID: 314b3d67-c4e5-4d40-a030-fa6e2f919c6b)
       Name: modified2 (UUID: 031418ce-57a7-4313-ac43-339a7f148d64) *

 mitty# vagrant snapshot go modified
 
 Powering off machine a7c0eae6-677d-4322-a8f5-9c4a1b6f9b22
 0%...10%...20%...30%...40%...50%...Restoring snapshot 314b3d67-c4e5-4d40-a030-fa6e2f919c6b
 60%...70%...80%...90%...100%
 Starting restored VM
 [default] Resuming suspended VM...
 [default] Booting VM...

 mitty# vagrant snapshot list

 Listing snapshots for 'default':
    Name: init (UUID: ce8054c3-0914-4548-a72b-d929cfda5589)
       Name: modified (UUID: 314b3d67-c4e5-4d40-a030-fa6e2f919c6b) *
       Name: modified2 (UUID: 031418ce-57a7-4313-ac43-339a7f148d64)

 となった。modifiedのところに*が付いた。これは最新のsnapshotということだろう。
  

chef solo + knife soloはまたの機会に。

0 件のコメント:

コメントを投稿