PackerでOVA作成シリーズです。
この前OVAを公開してみんなに使ってもらう必要があったのですが、作成に時間がかかり手作業も多く面倒でした。
OVAができたあとプロビジョニングしてみて、作業ミスをみつけると本当に心が折れます。
Packerを使うとイメージ作成が自動化できるのでプロビジョニング前にテストができます。
GCEやDockerのイメージ作成も統一化したいので、これを機会に勉強してみます。
さっそくPackerの使い方ググると、OSXのVagrantとVirtualBoxの使い方やPacker TemplatesはGitHubでもいくつかありました。
ただ、今回はWindows上でVagrantを使わずにVMwareのOVAを作りたいので、なかなか情報がみつからず困ります。
TL;DR
WindowsのPackerでOVAを作る場合VMWare Workstation
とovftoolが必要です。
また、ovftoolのpost-processorはGoをインストールしてexeをビルドする必要があります。
VMware Workstationのインストール
VMware Builder from ISOを斜め読みしただけでWindowsでもVMware Player
が使えると思ってしまいpacker build
しました。
するとVMware application not found
とエラーになってしまいます。ソースを読むと、driverのパスがLinuxになっています。
おかしいと思い、VMware Builder from ISOをよく読むと、VMware Player on Linux
と書いてありました。
Windowsでは有償のVMware Workstation
の9か10が必要のようです。
Goのコードは読みやすくて助かるのですが、自分で書くとちょっと物足りなく、最近はDartの方がおもしいです。
ここからVMware Workstation
をダウンロードしてインストールします。packer build
の初回起動時にライセンス入力を求められますが、スキップしても30日間は評価版で使えます。
Packerのインストール
ダウンロードページからWindows amd64をダウンロードします。2014-06-08のバージョンは、0.6.0です。
arm版もあります。Goで書いているだけあってクロスコンパイルを簡単にしているようです。
インストールはとても簡単で、zipを解凍してPATHを通すだけです。シングルバイナリなので各exeファイルは10MBと大きめになっています。
今回は、すでにPATHを通してあるC:\usr\local\bin
に解凍しました。Cygwin64 Terminal
を起動してインストールします。
$ wget https://dl.bintray.com/mitchellh/packer/0.6.0_windows_amd64.zip |
バージョンを確認します。
$ packer version |
Go1.2のインストール
Goは最新の1.2をインストールします。go.cryptoが1.1の場合はエラーになります。
undefined: cipher.AEAD |
ダウンロードページから、Windows amd64のインストーラーをダウンロードして実行します。
Goのバージョンを確認します。
$ go version |
GOPATHは、C:\gocode
にしました。
$ go env GOPATH |
GOPATHとGOROOTのbinをPATHに通します。
C:\Go\bin;C:\gocode\bin |
go install用にGitとMercurialのインストール
go install
コマンドを使うために、GitとMercurialのインストーラーをダウンロードして実行します。
バージョンを確認します。
$ git version |
packer-post-processor-ovftoolのインストール
packer-post-processor-ovftoolをgo install
します。
$ go get github.com/iancmcc/packer-post-processor-ovftool |
ovftoolのインストール
VMware OVF Tool 3.5.1 for Windows 64 bitをインストールします。
ダウンロードはMy VMware
から行うため、VMwareにアカウント登録が必要です。
デフォルトの場合以下にインストールされるので、PATHに通します。
C:\Program Files (x86)\VMware\VMware Workstation\OVFTool |
まとめ
とりあえず開発環境のセットアップが終わりました。普段はUbuntuやOSX上で開発しているので、Windowsは面倒に感じます。VMware Player
も同じ名前でLinuxとWindowsで機能が違うのも嵌まりました。
次はPacker template
を買いてOVAをビルドしてみます。