58
61

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Packerをつかって3ステップでVagrantのBoxを作る

Last updated at Posted at 2014-10-20

Vagrantは使っているけども、Packerは使っていないって方がだいたいかと思います。
まあそこまでやらずともvagrantboxで十分やんけ

よくわかる

自分も昔Packerでbox作った時に

超めんどくさかった。。。。(ビルドに時間がかかるので)

インフラに携わっている人とかには魅力を感じるかもしれませんが、デベロッパーにしてみたら

「ふーんそういうものがあるんだ。。。で??」

が正しいリアクションかもしれません。

でも他人が作ったboxとかよりも自分で作ったもののほうがブラックボックスではないよね

とか感じるときあるんすよ。(ほんのたまに)
自分も一回作った後は面倒でやっていなかったのですが普段お使いのPackerで作ったBoxがCentOS6.4でCentOSのバージョンも7まで上がったので重い腰あげようと思って
ググったら便利なものがありました。

Boxcutter

Packerの各OSでのテンプレートが配布されていて基本選ぶだけというものなので
これで使った時のメモになります

環境

  • macosx10.8(ホストOS)

作る仮想インスタンスのOS(VirtualBoxで)

  • CentOS7.0-x86_64

事前準備に必要なもの

参考にしたサイト

Boxcutterを使わずに作成した時のメモ

Boxcutterで自分が作りたいOSを選択して Git cloneする

言語設定等が必要になるのでCloneしましょ

/path/to/dir
#cloneよりかはforkしたものをcloneしたほうがベスト
git clone https://github.com/box-cutter/centos-vm.git

自分が作りたいOSのcentosXX.jsonを編集する

これはビルドするファイルの設定ファイルになります。
iso_urlがデフォルトUSかどこかのサイトになっているので変更しましょう。
(ビルドに時間がかかる為やったほうが幸せになれる)

centos70.json
#iso_urlの部分を編集する
    "iso_url": "http://ftp.riken.jp/Linux/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso",

TimeZoneの設定をする

デフォルトがUTCなのでAsia/Tokyoにする

http/ks7.cfg
timezone UTC #修正前
timezone Asia/Tokyo #修正後

ビルドする

ビルドに時間がかかります

/path/to/centos-vm
packer build --only=virtualbox-iso centos70.json

これだけでVagrantに使用するBoxの出来上がりです。

ちなみに出来上がったboxをVagrantに設定するのは下記のようにします

  #box url
  config.vm.box_url = "./path/to/centos-vm/box/virtualbox/centos70-nocm-0.1.0.box"

今まで億劫だったboxのビルドの管理も大分楽してできるようになりました。

補足

自分でビルドのオレオレ設定を書きたい場合は
scripts/* 以下にビルド実行の色々な設定やらなにやらがありますのでそこを自分なりに編集してください

58
61
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
58
61

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?