Part1,Part2を通してPackerで作成したOVAをテストするため、IDCFクラウドにプロビジョニングしてみました。
ローカルのVirtualBoxとVMware Player
で動作しているので大丈夫だと思いましたが、
結果的にPackerのGoの良いソースリードリーディングになりました。
おかげでPackerやgoxが実現するGoのコンパイル環境のよい勉強になり、OVAが動いたことよりうれしかったりします。
TL;DR
ESXi4.1用のOVAをovftoolで作る場合、OVFはのVirtualSystemTypはvmx-07
にして、
マニフェストファイルも削除する必要があります。
Packerの開発をWindows上でするのはもうやめようと思いました。
Goなのでシングルバイナリが普通に動いて楽しいのですが、VMware Player
がLinuxと違ったり、バックスラッシュの問題でISOをコピーできなかったり、
嵌まりどころが満載です。
バージョン情報
OVAを作成したPackerの環境は以下です。
- OS: Windows7
- Go: go1.2.2 windows/amd64
- Packer: v0.6.9
- iancmcc/packer-post-processor-ovftool: 6b2f234ca4
VMware Workstation
: 10.0.2VMware Player
: 6.0.2- VirtualBox: 4.3.12
Packerのvmware-iso'builder
はデフォルトでイメージを作っている環境のバージョンを使うので、
プロビジョニング先のバージョンがカレントでない場合、互換性を気にする必要があります。
VirtualBox用OVFの修正
まだovfの仕様がよくわからないのですが、今回の環境だとVMware Workstation
で作成したOVAは、
VirtualBoxはvmw:osType
がPackerデフォルトのotherだと動ず、
“ubuntu64Guest”と明示する必要がありました。
<OperatingSystemSection ovf:id="94" vmw:osType="ubuntu64Guest"> |
IDCFクラウド用OVFの修正
ここに従い、IDCFクラウドはESXi4.1を使っているので、vmxのバージョンは07にします。
<vssd:VirtualSystemType>vmx-07</vssd:VirtualSystemType> |
まとめ
DMTFがCIMでXMLスキーマを策定しているので、バリデーションができないか何か探してみようとおもいます。
OVAはそれなりにサイズが大きくファイルコピーや圧縮に時間がかかるので、手戻りがあると悲しくなります。
ようやく自動でOVAが作成できるようになりました。
Ansibleやsalt-masterlessでprovisionしたり、もっと細かいOSの設定をしてみます。
serverspecでテストしてdroneでCIできるモダンな開発環境をつくるまでが、このシリーズの目標です。
最近は環境構築ばかりしていて、なかなか本業のプログラマの帽子がかぶれないので。