packer-windowsテンプレートを使ってWindows 8.1 update(日本語版)評価版のVagrant Boxができた

nogajun
nogajun

_

Windows環境の検証で「Vagrantが使えたらな」と思ってましたが、Vagrant 1.6から正式にWindowsゲストに対応したので、packerを使ってWindows 8.1 update(日本語版)評価版を使ってVagrant Boxを作ってみました。

準備

packer用のWindowsテンプレートは、VeeWeeからの移植版という形ですでに作られています。

これをcloneして、適当にbranchを切っておきます。一回こっきりならzipファイルをダウンロードして使ってもおk。

テンプレートの中にはisoディレクトリがあるので、ここにISOイメージを置いておきます。 コピーでもシンボリックリンクでもどちらでもかまいません。

設定

変更するファイルは「windows_81.json」と「answer_files/81/Autounattend.xml」の2つです。

まずwindows_81.jsonのISOイメージの場所とmd5チェックサムを変更します。 ISOイメージの場所はisoディレクトリを指定します。 md5チェックサムは、md5sumコマンドで調べられられるのでこれを使います。

"type": "virtualbox-iso",
"iso_url": "./iso/9600.17050.WINBLUE_REFRESH.140317-1640_X64FRE_ENTERPRISE_EVAL_JA-JP-IR3_CENA_X64FREE_JA-JP_DV9.ISO",
"iso_checksum_type": "md5",
"iso_checksum": "38a1026af48eff582389acb48e8429bb",

VirtualBoxの設定でゲストOSタイプが「Windows2012_64」になっているので、これを「Windows81_64」に変更しておきます。

"guest_os_type": "Windows81_64",

次に、answer_files/81/Autounattend.xmlを変更します。

KMSクライアントキーをWindows 8.1 Enterprise用に変更します。

言語の指定をen-USからja-JPに変更します。

<SetupUILanguage>
    <UILanguage>ja-JP</UILanguage>
</SetupUILanguage>
<InputLocale>ja-JP</InputLocale>
<SystemLocale>ja-JP</SystemLocale>
<UILanguage>ja-JP</UILanguage>
<UILanguageFallback>ja-JP</UILanguageFallback>
<UserLocale>ja-JP</UserLocale>

Windows関連の設定はよくわからないので、この辺も参考にするといいかも。

作成

あとはpackerを実行すればVagrant boxが作成できます。 自分はVirtualBoxだけあればよかったので、こんな感じ。

$ packer build -only=virtualbox-iso windows_81.json

作成には、かなりの時間(自分の環境では2時間ぐらい)がかかるので気長に待ちます。

使ってみる

作成したboxをvagrant box addで追加。

Vagrantfileは、packer-windowsにvagrantfile-windows_81.templateというテンプレートがあるので、これをVagrantfileとしてコピーして、config.vm.boxを登録したbox名に編集します。

vagrant upすればWindowsのboxが起動します。

config.vm.communicatorをwinrmからsshに変更すれば、SSHでログインできます。

リモートデスクトップでの接続は、接続が許可されていないので、一度、GUIを有効にして(コメントアウトされている v.gui = true のコメントを外す)改めてリモートデスクトップの接続許可を有効にすると接続できます。