はじめに
VMware ESXi 5.1/5.5で仮想マシンをOVFテンプレートとしてエクスポートする際に、CD/DVDデバイスとしてISOファイルを選択したままになっていると、いざデプロイする段階になってデプロイできないという問題が知られています。
デプロイ開始直後に以下のように表示されて失敗します。
OVFパッケージのデプロイに失敗しました:タスクは、ユーザーによってキャンセルされました。
この場合、CD/DVDデバイスをクライアントデバイスに変更して再エクスポートすれば解決しますが、エクスポート済みのOVA/OVFファイルを変更してデプロイ可能にすることもできます。
参考サイト
以下のKnowledge Baseが参考になります。ただVMware Toolsは本質的でないにも関わらず、それが原因であるかのように書かれていてわかりにくいため、改めて手順を残しておきます。
- VMware KB: VMware Tools のインストール時に vCenter Server 5.1/5.5 での OVF のデプロイに失敗する
- VMware KB: Deploying an OVF fails on vCenter Server 5.1/5.5 when VMware tools are installed
手順
1. OVA形式の場合は展開する
OVF形式でエクスポートした場合はこの手順は飛ばしてOKです。
OVA形式の実体はtarアーカイブなので、tarとして展開します。
MyVM.ovaを展開すると以下のファイルが出てくるはずです。
- MyVM.mf:ファイルのハッシュを保持するファイル
- MyVM.ovf:仮想マシンの設定を保持するXMLファイル
- MyVM-diskn.vmdk:ディスクイメージ(ディスクの数だけある)
2. MyVM.ovfを編集する
以下のような箇所を探し、
<Item ovf:required="false">
<rasd:AddressOnParent>0</rasd:AddressOnParent>
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
<rasd:ElementName>CD-ROM 1</rasd:ElementName>
<rasd:InstanceID>9</rasd:InstanceID>
<rasd:Parent>4</rasd:Parent>
<rasd:ResourceSubType>vmware.cdrom.iso</rasd:ResourceSubType>
<rasd:ResourceType>15</rasd:ResourceType>
<vmw:Config ovf:required="false" vmw:key="backing.exclusive" vmw:value="false" />
<vmw:Config ovf:required="false" vmw:key="connectable.allowGuestControl" vmw:value="true" />
</Item>
vmware.cdrom.iso
となっているところを
<rasd:ResourceSubType>vmware.cdrom.iso</rasd:ResourceSubType>
次のようにvmware.cdrom.remotepassthrough
に書き換えます。
<rasd:ResourceSubType>vmware.cdrom.remotepassthrough</rasd:ResourceSubType>
3. MyVM.mfのハッシュ値を更新する
sha1sumコマンドなどでMyVM.ovfの新しいSHA1ハッシュを計算し、MyVM.mfを更新します。
MyVM.mfの中身は以下のようになっています。
SHA1(MyVM.ovf)= <.ovfのSHA1ハッシュ>
SHA1(MyVM-disk1.vmdk)= <.vmdkのSHA1ハッシュ>
4. OVFファイルをデプロイする
再びデプロイすればうまくいくはずです。