hello-world
webエンジニアのメモ。とりあえずやってみる。

[Mac]modern.IEに公開されているWindows仮想マシンをVagrant経由で起動する

公開日時

Microsoft公式の modern.IE というサイトでIE検証用のWindows仮想マシンが無償公開されていることを教えてもらいました。

せっかくなのでVagrant経由で仮想マシンを起動できるようにしてみました。

結論から書いておくと、vagrant upで起動はできるものの、vagrant haltで停止することができない等、色々あるのでわざわざvagrant経由にしなくてもいいと思いました。

普通にダウンロードしてきた.ovaファイルをVirtualBoxで開けばIE検証環境ができあがるのでそれでいいと思います。

「仮想マシンは全部vagrant経由に統一したいんだ」という人に向けて一応メモを残しておきます。

検証環境

  • MacOSX 10.7.5
  • vagrant 1.2.2

仮想マシンのダウンロードと解凍

IE8 - Win7 の場合

  • 仮想マシンをダウンロード
mkdir -p ~/Vagrants/boxes/ie8win7
cd ~/Vagrants/boxes/ie8win7
curl -O "http://virtualization.modern.ie/vhd/IEKitV1_Final/VirtualBox/OSX/IE8_Win7/IE8.Win7.For.MacVirtualBox.part{1.sfx,2.rar,3.rar,4.rar,5.rar,6.rar}"
  • 実行権限付与
chmod +x IE8.Win7.For.MacVirtualBox.part1.sfx
  • 解凍
./IE8.Win7.For.MacVirtualBox.part1.sfx

IE8 - XP の場合

  • 仮想マシンダウンロード
mkdir -p ~/Vagrants/boxes/ie8xp
cd ~/Vagrants/boxes/ie8xp
curl -O "http://virtualization.modern.ie/vhd/IEKitV1_Final/VirtualBox/OSX/IE8_XP/IE8.XP.For.MacVirtualBox.ova"

Vagrant用のboxとして再構築する

IE8.Win7の環境構築で行った手順を残しておきます。

手順は共通なので、IE8.XPでも同じ流れでできます。

  • .ovaファイルを解凍

The Unarchiverを使って解凍しました

  • 解凍ディレクトリに移動してovfファイルをbox.ovfにリネーム
cd IE8.Win7.For.MacVirtualBox

mv IE8\ -\ Win7.ovf box.ovf

vmdkのほうはリネームするとvagrant起動時にエラーになるので注意

  • metadata.jsonの追加
vi metadata.json

{"provider":"virtualbox"}
  • macadress生成

MAC Address Generatorというサイトでmacadressを生成してメモしておく

  • Vagrantfile追加 (上記で生成したmacadressを記述)
vi Vagrantfile

Vagrant::Config.run do |config|
  # This Vagrantfile is auto-generated by `vagrant package` to contain
  # the MAC address of the box. Custom configuration should be placed in
  # the actual `Vagrantfile` in this box.
  config.vm.base_mac = "xxxxxxxxx"
end

 # Load include vagrant file if it exists after the auto-generated
 # so it can override any of the settings
include_vagrantfile = File.expand_path("../include/_Vagrantfile", __FILE__)
load include_vagrantfile if File.exist?(include_vagrantfile)
  • 4つのファイルをtar形式で圧縮
tar cvf ie8win7.tar Vagrantfile IE8\ -\ Win7-disk1.vmdk box.ovf metadata.json
  • vagrantにbox追加
vagrant box add ie8win7 ./ie8win7.tar
  • box確認
vagrant box list

centos (virtualbox)
ie8xp  (virtualbox)
ie8win7  (virtualbox)
  • vagrant経由で起動してみる
mkdir -p ~/Vagrants/ie8win7
vagrant init
vi Vagrantfile

config.vm.box = "ie8win7"
# ssh接続できずにずっと再接続しようとするので試行回数を1回に
config.ssh.max_tries = 1

config.vm.provider :virtualbox do |vb|
  vb.gui = true
end
  • 仮想マシン起動
vagrant up

# インポートに時間かかる
[default] Importing base box 'ie8win7'...

# ssh接続できないため下記エラーが出るが起動はできる
[default] Waiting for VM to boot. This can take a few minutes.
[default] Failed to connect to VM!
Failed to connect to VM via SSH. Please verify the VM successfully booted
by looking at the VirtualBox GUI.

残念ながらxpの場合は言語ファイルをインストールできないため、日本語が文字化けします。
win7は日本語も表示できます。

ssh接続できないため、vagrant haltで終了できません。

vagrant suspendは使えます。

  • サスペンドする場合
vagrant suspend

とりあえずこれでIE検証環境を作ることができました。めでたしめでたし。

最初にも書きましたが、こんなことしなくても普通にダウンロードしてきた.ovaファイルをVirtualBoxで開けばIE検証環境ができあがりますのでご安心を。

参考URL


Related #IE

IE8以下ではgetElementsByClassNameが使えない

タイトルの通り これを知らずに使ってハマりました