OSXでpackerでCentOS6.4のVirtualBox VMを作成する

  • 90
    いいね
  • 9
    コメント
この記事は最終更新日から1年以上が経過しています。

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...を参考にさせて頂きました。ありがとうございます。