akishin999の日記

調べた事などを書いて行きます。

Box-Cutter で CentOS 7.1 の Box を作成する

久しぶりに Packer で CentOS 7 の Box を作成しようと思い、以前も使った Box-Cutter を使おうとしたらちょっと使い方が変わっていたのでメモ。
環境は Windows 7 64bit, Packer のバージョンは 0.8.6 です。

まず、そもそも Box-Cutter の CentOSリポジトリが以下のように移動していました。

https://github.com/box-cutter/centos-vm

https://github.com/boxcutter/centos

なので改めて適当なディレクトリに clone。

>git clone https://github.com/boxcutter/centos
>cd centos

CentOS 7.1 を作成することにしたので、centos71.json を編集。
memory を増やして iso_url を日本のミラーサーバに変更しました。

{
  "_comment": "Build with `packer build -var-file=centos71.json centos.json`",
  "vm_name": "centos71",
  "cpus": "1",
  "disk_size": "65536",
  "iso_checksum": "1795184136b8bdddabe50453cc2cc2d46f0f7c5e",
  "iso_checksum_type": "sha1",
  "iso_name": "CentOS-7-x86_64-DVD-1503-01.iso",
  "iso_url": "http://ftp.jaist.ac.jp/pub/Linux/CentOS/7/isos/x86_64/CentOS-7-x86_64-DVD-1503-01.iso",
  "kickstart": "ks7.cfg",
  "memory": "1024",
  "parallels_guest_os_type": "centos7"
}

日本語環境の Box にしたいので、http\ks7.cfg を開き、以下の部分を変更。

# Required settings
lang ja_JP.UTF-8
keyboard jp106
rootpw vagrant
authconfig --enableshadow --enablemd5
timezone Asia/Tokyo

この状態で普通に packer build を実行したら以下のようなエラーが発生しました。

>packer build -only=virtualbox-iso centos71.json
Failed to parse template: 10 error(s) occurred:

* Unknown root level key in template: 'cpus'
* Unknown root level key in template: 'disk_size'
* Unknown root level key in template: 'iso_checksum'
* Unknown root level key in template: 'iso_checksum_type'
* Unknown root level key in template: 'iso_name'
* Unknown root level key in template: 'iso_url'
* Unknown root level key in template: 'kickstart'
* Unknown root level key in template: 'memory'
* Unknown root level key in template: 'parallels_guest_os_type'
* Unknown root level key in template: 'vm_name'

centos71.json の _comment の所をよく見ると書いてあるのですが、どうやら最近の Box-Cutter では centos.json に全体的な設定が記述してあり、バージョン番号入りの JSON ではバージョン毎に設定値が異なる変数のみが定義してあるようです。

なので書いてある通りに以下のようにして改めて実行。

>packer build -var-file=centos71.json -only=virtualbox-iso centos.json

これで暫く待つと box/virtualbox/centos71-nocm-0.1.0.box に Box が作成されました。