しばたテックブログ

気分で書いている技術ブログです。

VagrantでParallelsでWindowsを使う(その2)

前回の続きで、Parallels用のWindows Boxを作る手順について説明します。

Boxの作り方

Creating a Base Box - Vagrant Parallels Provider Documentation に公式な作成手順が載っているのでこれに倣ってBoxを作っていきます。

1. ベースとなるゲストVM(Windows OS)の作成

VirtualBoxでのBoxの作り方の手順と同様にベースとなるゲストVMを作り、OSの設定を行ってください。

ゲストVMの設定が終わったらVMをシャットダウンします。

2. Boxサイズの最適化

これは必須の手順ではないのですが、公式の手順に載っているので一応記載しておきます。
Boxを作る前にprl_disk_toolコマンドを使ってVHDのサイズを最適化します。

作ったゲストVMが/Users/stknohg/Documents/Parallels/Win2012R2Box.pvmだとした場合、以下の様にコマンドを実行します。

prl_disk_tool compact /Users/stknohg/Documents/Parallels/Win2012R2Box.pvm/harddisk.hdd

3. Boxの作成

続けてBoxを作成します。
最初に言ってしまうとParallelsのBoxは仮想マシンのPVMファイルにmetadata.jsonVagrantfileを付けてtarで圧縮したものになります。

適当なディレクトリを作り、そこにPVMファイルをコピーまたは移動します。

VagrantfileにはそのBoxのデフォルトとして設定したい項目を記載します。
最低限動かすだけで良ければ空ファイルで構いません。

metadata.jsonにはVagrantのフォーマットに従った内容を記載します。
最低限動かす場合は以下の内容だけで良いです。

{"provider":"parallels"}

最終的に作成したディレクトリにこれらの3ファイルが配置される様にします。

/[作ったディレクトリ]/
  Vagrantfile
  metadata.jason
  Win2012R2Box.pvm (作ったゲストVM)

最後にtarコマンドで作ったファイルをまとめて圧縮します。
ディレクトリを/Users/stknohg/Documents/に作った場合、以下の様にコマンドを実行してください。

cd /Users/stknohg/Documents/
tar cvzf Win2012R2.box ./Win2012R2Box.pvm ./Vagrantfile ./metadata.json

Boxファイルの登録

作成したBoxファイルはvagrant box addコマンドで登録すればOKです。

注意事項

現時点ではWindowsのBoxに対してIPアドレスを設定することが出来ず、Issueとして登録もされています。
この問題について調べてみたのですが根が深そうで簡単には直らない様な気がしてます。
良い方法では無いのですがこの問題をとりあえず回避する手段もあるので別エントリで触れたいと思います。*1

おまけ

ParallelsのBoxを作るには手作りする以外にVeeweeを使う方法もあります。

Using Veewee - Vagrant Parallels Provider Documentation

ただ、VeeweeでParallels Boxを作りには別途SDKが必要だったりとちょっとBoxを作る程度であれば手作りで十分じゃないかと個人的には思っています。

*1:あとでIssueにもコメントしたいと思います...