ovfデプロイ時に「OVFパッケージのデプロイに失敗しました: タスクは、ユーザーによってキャンセルされました。」となり失敗する

#■事象
VMware ESXi 6.0にて、ovfデプロイ時に以下メッセージが表示された場合の対処内容を記載します。

```:デプロイに失敗しました
OVFパッケージのデプロイに失敗しました: 
タスクは、ユーザーによってキャンセルされました。
```
![image.png](https://qiita-image-store.s3.amazonaws.com/0/201787/e3850726-31ad-e7cf-255d-119bf6f18676.png)

ESXi側のインベントリにも、以下のイベントが出力されます。

```
<仮想マシン名>を作成しています
新規仮想マシン <仮想マシン名> が作成されました
<仮想マシン名>が削除されました
<仮想マシン名>が削除されました
```
![image.png](https://qiita-image-store.s3.amazonaws.com/0/201787/ad37e673-cd4a-101c-cb6e-c6f24ef551e8.png)

#■原因
仮想マシンのプロパティにて、「CD/DVDドライブ」の「デバイスタイプ」が、「クライアントデバイス」に**なっていないとき**に発生します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/201787/d27c32ef-a76c-fbcd-b7a5-e3eee19d011e.png)



#■解決策
以下の解決策があります。
１．仮想マシンのプロパティを修正し、ovfエクスポートからやりなおす
　→時間と作業ボリュームに余裕があるとき

２．既にovfエクスポートしたファイルの一部を編集する
　→何度もovfエクスポートしたくないとき

３．データストアブラウザでvmデータ一式をコピーする
　→仮想マシンプロパティを意識したくないとき


#■解決策１．仮想マシンのプロパティを修正して、ovfエクスポートからやりなおす
・手順
①仮想マシンプロパティを修正
②ovfエクスポートを実施
③ovfデプロイを実施

・詳細
①仮想マシンプロパティを修正
ovfする仮想マシンを選択し、「設定の編集」から「仮想マシンのプロパティ」を表示する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/201787/25fd41e9-7870-7916-9d46-341a5f6c64fc.png)

「ハードウェア」タブの「CD/DVDドライブ」について、「デバイスタイプ」を「クライアントデバイス」に設定する。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/201787/9cf2ebdf-cd47-7b30-4090-f94465b21b03.png)

②ovfエクスポートを実施
③ovfデプロイを実施
>※ovfエクスポート/デプロイ操作については以下記事を参照
[VMware ESXi 6.0でvSphere ClientからOSクローン作成する(OVFエクスポート/デプロイ編)](https://qiita.com/Higemal/items/59679de56f9564ab1191)


#■解決策２．既にovfエクスポートしたファイルの一部を編集する
・手順
①.ovfファイルの編集
②.ovfファイルのハッシュ値取得
③.mfファイルの編集（ハッシュ値上書き）
④ovfデプロイの実施

>以下のvmware公式ナレッジを踏襲
[VMware Tools のインストール時に vCenter Server 5.1/5.5 での OVF のデプロイに失敗する (2034422)](https://kb.vmware.com/s/article/2034422?lang=ja)


・詳細
①.ovfファイルの編集
ovf形式でエクスポートしたファイルのうち、.ovfファイルを開き、「vmware.cdrom.iso」と記載のある部分を「vmware.cdrom.remotepassthrough」に変更する。

```java:仮想マシン名.ovf
///前略///
<rasd:ResourceSubType>vmware.cdrom.iso</rasd:ResourceSubType>
///後略///
```

↓編集

```java:仮想マシン名.ovf
///前略///
<rasd:ResourceSubType>vmware.cdrom.remotepassthrough</rasd:ResourceSubType>
///後略///
```


>Tips: ovfエクスポートすると、.mfファイル、.ovfファイル、.vmdkファイルの３つが出力される
![image.png](https://qiita-image-store.s3.amazonaws.com/0/201787/93beefd3-aaf0-3816-32d3-b4feda4ed1bb.png)


②.ovfファイルのハッシュ値取得
.ovfファイルのハッシュ値を再計算する。ハッシュ関数はsha1を利用。
※今回はwindowsコマンドプロンプトを利用。

```:windowsコマンドプロンプト
certutil -hashfile <仮想マシン名.ovf> SHA1
```

![image.png](https://qiita-image-store.s3.amazonaws.com/0/201787/120bad02-40a7-4180-7866-afd07b6d6b0f.png)



③.mfファイルの編集（ハッシュ値上書き）
.ovfファイルおよび.vmdkファイルのハッシュ値が記載されている.mfファイルについて、.ovfファイルのハッシュ値を記載する。
.mfファイルをテキストエディタで開き、ovf部分にハッシュ値を上書きする（2行目の"="以降部）。

```:仮想マシン名.mf
SHA1(cent64-gn01-disk1.vmdk)= a812bc4fe097997cf441d51b99ee888dd76a4098
SHA1(cent64-gn01.ovf)= 00cdcbb06f8f0b19a9e7a48b6a4b77cec29bb909
```

<br>
④ovfデプロイの実施
※省略


#■解決策３．データストアブラウザでvmデータ一式をコピーする
本内容の場合、仮想マシンのプロパティがクライアントデバイスになっていない場合でもクローニング可能です（デバイスタイプ：データストアISOファイルの場合にて確認済）。

・手順
①仮想マシン構成ファイルのコピペ
②仮想マシンのクローニング

・詳細
手順については以下記事を参照
[VMware ESXi 6.0でvSphere ClientからOSクローン作成する(データストアブラウザでコピペ編)　](https://qiita.com/Higemal/items/0e994973e90dada62768)



#■その他①：ovfファイルの差異
①と②で生成した.ovfファイルをdiffしてみましたが、差異が発生していたのはcdrom部分だけでした。①では「vmware.cdrom.remoteatapi」となっていたので、書き換えはこちらでも有効かと思います（未検証）。

```java:①.ovfファイル
<rasd:ResourceSubType>vmware.cdrom.remoteatapi</rasd:ResourceSubType>
```
```java:②.ovfファイル
<rasd:ResourceSubType>vmware.cdrom.remotepassthrough</rasd:ResourceSubType>
```

#■その他②：ovfファイルと仮想マシン作成（既存ディスク）
①および②でエクスポートしたovfファイル群を、データストアブラウザ経由で配置した場合、③の仮想マシン作成の「既存ディスクの選択」にてvmdkファイルが認識されませんでした。

・ovfファイルの配置
![image.png](https://qiita-image-store.s3.amazonaws.com/0/201787/b94efecc-51d0-3fed-99b0-fc809d272bc3.png)
※vmdkファイル配置済み

・仮想マシン作成時に認識されない
![image.png](https://qiita-image-store.s3.amazonaws.com/0/201787/664d8fd4-237d-b69a-08c5-0d6745075785.png)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/201787/81bbc08c-d4d5-2384-3b8d-1917f1c0328e.png)
※vmdkファイルが表示されない

#■出典
CentOS6.4 のOVFテンプレートのデプロイに失敗する。
https://communities.vmware.com/message/2255792

VMware Tools のインストール時に vCenter Server 5.1/5.5 での OVF のデプロイに失敗する (2034422)
https://kb.vmware.com/s/article/2034422?lang=ja

CD/DVDデバイスが原因でESXiへのデプロイに失敗するOVA/OVFファイルの修正方法
https://qiita.com/orangain/items/59202b48809468004bea

[コンピュータ]ESXi (vSphere Client) 5.1で仮想マシンのOVFエクスポート後デプロイに失敗する
http://damedame.monyo.com/?date=20120918