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

Posted on 2014/03/03(Mon) 03:45 in technical

概要

PackerとKVM(qemu)を使って、OSの自動インストールをします。 インストール対象はUbuntu 12.04.3 LTSを使いますので、自動化にはPreseedも使います。

Packerのインストール

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

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

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

こんな感じですかね。:

$ cd
$ mkdir vm
$ cd vm
$ wget https://dl.bintray.com/mitchellh/packer/0.5.2_linux_amd64.zip
$ unzip 0.5.2_linux_amd64.zip

警告

unzip入ってなかったら apt-get install unzip しましょう...

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

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

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

こんな感じですかね。:

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

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

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

$ cd packer-templates-master/ubuntu1204
$ wget 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を使う場合は、恐らく気にしなくても使えるんじゃないかと思います。

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

今回はこんな感じにしました:

+ vm
    - packer.exe
    + packer-templates-master
        + ubuntu1204
            - ubuntu-12.04.3-server-amd64.iso
            - ubuntu1204_3_qemu.json
  • ubuntu-12.04.3-server-amd64.iso : さっきダウンロードしてきたUbuntuのCDイメージ
  • ubuntu1204_3_qemu.json : Packerの構成ファイル

自動インストール

Linuxはコマンドの方が簡単なので、レッツpackerコマンドを叩きます。:

$ ../../packer build ubuntu1204_3_qemu.json

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

packer_qemu_ubuntu_001.png packer_qemu_ubuntu_002.png

はいできあがり。

packer_qemu_ubuntu_003.png

で、こいつをlibvirtで使ってるディレクトリに放り込む。

packer_qemu_ubuntu_004.png

あとは、virt-managerから既存イメージを指定して仮想マシンを作る。

packer_qemu_ubuntu_005.png packer_qemu_ubuntu_006.png packer_qemu_ubuntu_007.png packer_qemu_ubuntu_008.png packer_qemu_ubuntu_009.png

普通に起動するとGUIも使えないから、ディスプレイをvgaにしておきたいので、起動前に仮想マシンの編集にチェック。

packer_qemu_ubuntu_010.png packer_qemu_ubuntu_011.png

通報

もちろん、デフォルトだとNATに繋がってるから、arp -nしてそれっぽく増えてるIPにsshすれば、別に問題にはならないね。

はい、出来上がり。お疲れ様でした。

packer_qemu_ubuntu_012.png