Packer ではまる
Ansible を試そうと思って、構成管理するサーバをとりあえず Vagrant を使って建てようとした。
box ファイルをどうしようと悩んだが Packer を使って自分で作ってみる事にした。
0.5.0 で後方互換を無くす仕様変更があり、ハマったのでメモ。
# 典型的な Yak Shaving
Packer のパッケージを(0.5.1)をダウンロードして $PATH を通した。
テンプレートは時雨堂に CentOS6.5 があったので、それを借りる事にした。
$ git clone https://github.com/shiguredo/packer-templates.git $ cd packer-template $ cd centos-6.5 $ packer build -only=virtualbox template.json Failed to create build 'virtualbox': No builder returned for name: virtualbox
エラーになった…。
どうやら 0.5.1 で virtualbox, vmware という名前はそれぞれ virtualbox-iso, vmware-iso に変更になった模様。
packer/CHANGELOG.md at master · hashicorp/packer · GitHub
template.json の virtualbox, vmware を virtualbox-iso, vmware-iso に変更する。
packer build -only=virtualbox-iso template.json virtualbox-iso output will be in this color. 2 error(s) occurred: * Unknown configuration key: virtualbox * Unknown configuration key: vmware
最初どこでエラーになってるのか分からなかったけど、post-processors 内で発生してる事が分かった。
"post-processors": [ { "type": "vagrant", "override": { "virtualbox": { "output": "centos-6-5-x64-virtualbox.box" }, "vmware": { "output": "centos-6-5-x64-vmware.box" } } } ],
こんな感じで override の下に virtualbox, vmware を移動させる。
$ packer build -only=virtualbox-iso template.json virtualbox-iso output will be in this color. 略
あとは完了するのをまったり待つだけ。
Packer 便利!!
時雨堂のテンプレートには Pull Request を送ったらマージして貰えた。
あざす!