2014-05-23追記 vagrantcloud.comにCentOS 6.5とUbuntu 14.04のVMを登録しました
作成済みのVMだけ使いたい場合はそちらをご利用ください。手順は"packer - Ubuntu 14.04 を Vagrant に準備する - Qiita"へのコメントを参照してください。
また、packer用のtemplate.jsonはshiguredo/packer-templatesを利用するのがお勧めです。CentOSとUbuntuの新しいバージョンが出る度にpacker templateが追加されています。私もいつも利用させて頂いています。ありがとうございます!
packerのインストール
詳細はInstall Packer - Packerを参照してください。
- Downloads - PackerでMac OSXのamd64のリンクをクリックしてダウンロードします。
- ダウンロードしたzipファイルを解凍して~/packer/に配置します(~/packer/packerというパスでアクセスできるようにします)。
- 以下のコマンドを実行します。
$ echo 'export PATH=~/packer:$PATH' >> ~/.bash_profile
$ exec $SHELL -l
packerが実行できることを確認します。
$ packer
usage: packer [--version] [--help] <command> [<args>]
Available commands are:
build build image(s) from template
fix fixes templates from old versions of packer
validate check that a template is valid
vagrantのbox作成
私が作成したpacker用の設定ファイルが
https://github.com/hnakamur/my-packer-template-files/tree/895f40358ff38328d30a69727bceba5f4962c3e2/centos6.4
に置いてあります。これをダウンロードしてpacker buildを実行します。
https://github.com/hnakamur/my-packer-template-files/commit/c90c7d6a17d522f9516a07176e873b99f30251da の方を使うと、provisioningでepelとAnsibleもインストールします。
$ git clone https://github.com/hnakamur/my-packer-template-files
$ cd my-packer-template-files/centos6.4
$ packer build -only=virtualbox template.json
これで、以下の処理が実行されます。
- CentOSのisoイメージをダウンロード
- VirtualBoxのVMを作成
- プロビジョニング実行(template.jsonのprovisionersに対応)
- vagrantのVM作成(template.jsonのpost-processorsに対応)
最終的にはpacker_virtualbox_virtualbox.boxが生成されます。VirtualBoxのVMは途中で一旦登録されますが削除されます。
vagrant box addコマンドで好きな名前をつけて登録します。
$ vagrant box add centos6.4 packer_virtualbox_virtualbox.box
あとはいつも通りVagrantファイルを作ってvagrant upでお使いください。
参考サイト
Packerリリースおめでとうございます! - As a Futurist...を参考にさせて頂きました。ありがとうございます。