チェックサムの不一致で OVF テンプレートのデプロイに失敗する

最終更新日

はじめに

NSX Manager のデプロイの際に OVF テンプレートのデプロイに失敗したので、解決策をご紹介。

エラーについて

タスクを確認してみると以下のようなエラー。

「OVF パッケージのデプロイに失敗しました。 ThrowableProxy.cause 指定されたパラメータが正しくありません: 指定されたマニフェストのチェックサムが nsx-unified-appliance.vmdk ファイルの内容と一致しません。」

私の場合、ブラウザ変えたり、FQDNでアクセスして再実行したり、他の記事で紹介されていることは一通り試しましたが結果は変わらず。

エラー内容を理解する

エラーにあるチェックサムとはファイルの「同一性」を確認するために利用するものである。

SHA-256 などのハッシュ関数からハッシュ値を算出し、それをチェックサムとしてもとのファイルデータのものと正しいか比較する。

たとえば Windows の場合 CertUtil -hashfile <ファイル名> SHA256 でチェックサムを確認できる。

PS C:\Users\Administrator\Downloads> CertUtil -hashfile .\embedded_vCSA_on_ESXi.json SHA256
SHA256 ハッシュ (対象 .\embedded_vCSA_on_ESXi.json):
e3b19269769e0549732be8be85a19bcc119da73087c184a4edc8bb87f0062dc2
CertUtil: -hashfile コマンドは正常に完了しました。

エラーの内容からすると、なんらかの原因でマニフェストファイルにあるチェックサムの値とVMDKのファイルのチェックサム値が一致しなくなってしまったと考えられる。

例えばデータストアブラウザを使用してコンピュータから vSphere ストレージに VMDK ファイルをアップロードするときに、MD5 チェックサムが変更されてしまうそう。(今回はそんなことしていない)

解決策

NSX Manager の場合は OVA 形式で提供されているので、一旦 OVA を展開する。

7zip などのツールを利用して展開が可能。

展開すると、vmdkファイル、Certファイル、MFファイル、OVFファイルから構成されている。

問題となっているのはおそらく MF ファイルでここには各ファイルのハッシュ値が記載されている。

SHA1(nsx-unified-appliance-3.2.0.0.0.19067081.ovf)= 56b870e0f6bb630f2d84e2c99faab630014a83ec
SHA1(nsx-unified-appliance.vmdk)= 016c428f179fd06ea6937aeecc633e9fd2a4f5fc
SHA1(nsx-unified-appliance-secondary.vmdk)= 2c7ca4909e1295718ae1bee9c9b6a9dd0d06546f

2つめのハッシュ値が実際のファイルから計算されたものと異なっているので、こちらを SHA1 で再計算して修正すれば問題なくデプロイできそうである。

一方でこのマニフェストファイルなしでもデプロイできるようなので、今回はその方針で試す。

OVF テンプレートのデプロイから、MFファイル以外を指定して進める。

無事デプロイできた。

以上。

参考

https://kb.vmware.com/s/article/2117310?lang=ja