PackerでVirtualBoxのUbuntuイメージを作る話

Posted on 2014/03/01(Sat) 02:35 in technical

概要

PackerとVirtualBoxを使って、OSの自動インストールをします。 インストール対象はUbuntu 12.04.3 LTSを使いますので、自動化にはPreseedも使います。 Vagrantの話はしません。

Packerのインストール

ダウンロードしてきて好きなところにぶちまけるだけの簡単なお仕事です。

Packer Downloads : http://www.packer.io/downloads

今回はWindowsを使うので、zipをダウンロードして適当な場所に置きます。

自動インストール用のファイル作成

本来はここが一番つらくてしんどい行程なのですが、とりあえずお料理番組ばりに冷蔵庫(github)から取得してきましょう。

https://github.com/ainoniwa/packer-templates/archive/f2b38b99a999581a26bc70a631ab0f0c27944b75.zip

OSのインストールイメージの取得

適当なところからダウンロードしましょう。理研さんとかが良いですかね。

http://ftp.riken.go.jp/Linux/ubuntu-iso/CDs/12.04.3/ubuntu-12.04.3-server-amd64.iso

で、packer-templatesの中のubuntu1204フォルダの中に置きます。これは単に僕の独自ルールです。

通報

Packerはインストールイメージの検証を行うので、MD5SUMSまたはSHA1SUMSもダウンロードしておくと良いです。 もしこの記事に従ってainoniwa/packer-templatesを使う場合は、恐らく気にしなくても使えるんじゃないかと思います。

フォルダ構造とファイル群

こんな感じですかね:

+ 0.5.1_windows_amd64
    - packer.exe
    + packer-templates
        + ubuntu1204
            - build1204_3_vbox.bat
            - disable_udev_persistent_net.sh
            - enable_serial_ttyS0.sh
            - ubuntu-12.04.3-server-amd64.iso
            - ubuntu1204_3_vbox.json
  • build1204_3_vbox.bat : 単にpacker.exeを起動するだけのバッチファイル
  • disable_udev_persistent_net.sh : OSインストール後の追加設定その1。仮想マシンをクローンすることを想定して、eth0とかを固定しないようにする設定を入れる
  • enable_serial_ttyS0.sh : OSインストール後の追加設定その2。シリアルコンソールを有効化しておく
  • preseed.cfg : Debian系のOSで使われる自動インストール用の構成情報が書かれたファイル
  • ubuntu-12.04.3-server-amd64.iso : さっきダウンロードしてきたUbuntuのCDイメージ
  • ubuntu1204_3_vbox.json : Packerの構成ファイル

自動インストール

適当にbuild1204_3_vbox.batをダブルクリックすれば、同じフォルダにubuntu1204_3_isoが出来上がる。 出来上がりまでは座して待つ。

ちなみに、インストール時の初期ユーザ名は我らが雪さん(username:yuki / password:yuki)です。ainoniwaだけに(これが言いたかった)

うにょうにょインストールされていく。

packer_vbox_ubuntu_001.png packer_vbox_ubuntu_002.png packer_vbox_ubuntu_003.png

出来上がるとこんな感じに。

packer_vbox_ubuntu_004.png

後は、ovfファイルをダブルクリックとかして、VirtualBoxにインポート。

packer_vbox_ubuntu_005.png packer_vbox_ubuntu_006.png

後は起動すれば使える状態になる。

packer_vbox_ubuntu_007.png

いくつか作って置いておくと、別の作業しながら試験環境作れてお得です。