イメージ作成のサポートツール

イメージ作成のサポートツール

イメージ作成を自動化するために設計されたツールがいくつかあります。

Diskimage-builder

Diskimage-builder は、さまざまな種類のディストリビューションやアーキテクチャーをサポートする、ディスクイメージの自動作成ツールです。diskimage-builder (DIB) は、Fedora、Red Hat Enterprise Linux、Ubuntu、Debian、CentOS、openSUSE のイメージを作成できます。DIB は、エレメント群に分類されており、エレメントを組み合わせて特定のイメージを作成します。

以下のスクリプトを実行し、イメージを構築します。

# disk-image-create ubuntu vm

この例は、最新リリースの Ubuntu の汎用的なブート可能なイメージを作成します。

環境変数を設定したり、コマンドラインでエレメントを追加で指定することで、さらにカスタマイズできます。

# disk-image-create -a armhf ubuntu vm

この例は、前の例と同じようにイメージを作成しますが、arm アーキテクチャー向けです。様々なエレメントが git ソースディレクトリーdiskimage-builder のドキュメント にあります。

Oz

Oz は、仮想マシンイメージファイルの作成手順を自動化するコマンドラインツールです。 Oz は 、KVM とやり取りを行う Python アプリケーションで、仮想マシンのインストール手順を順に行います。

サポートするオペレーティングシステム用の事前定義された kickstart (Red Hat 系システム)、preseed ファイル (Debian 系システム) を使用します。Microsoft Windows イメージを作成するためにも使用できます。

Oz の詳細は、このドキュメントの範囲を超えていますが、例を挙げておきます。GitHub の rcbops/oz-image-build/tree/master/templates にも Oz テンプレートの例があります。以下は、Oz を用いて CentOS 6.4 イメージを作成する方法です。

以下の内容で centos64.tdl という名前のテンプレートファイルを作成します。変更する必要がある項目は、<rootpw> の内容だけです。

<template>
  <name>centos64</name>
  <os>
    <name>CentOS-6</name>
    <version>4</version>
    <arch>x86_64</arch>
    <install type='iso'>
      <iso>http://mirror.rackspace.com/CentOS/6/isos/x86_64/CentOS-6.4-x86_64-bin-DVD1.iso</iso>
    </install>
    <rootpw>CHANGE THIS TO YOUR ROOT PASSWORD</rootpw>
  </os>
  <description>CentOS 6.4 x86_64</description>
  <repositories>
    <repository name='epel-6'>
      <url>http://download.fedoraproject.org/pub/epel/6/$basearch</url>
      <signed>no</signed>
    </repository>
  </repositories>
  <packages>
    <package name='epel-release'/>
    <package name='cloud-utils'/>
    <package name='cloud-init'/>
  </packages>
  <commands>
    <command name='update'>
yum -y update
yum clean all
sed -i '/^HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth0
echo -n > /etc/udev/rules.d/70-persistent-net.rules
echo -n > /lib/udev/rules.d/75-persistent-net-generator.rules
    </command>
  </commands>
</template>

この Oz テンプレートでは、Centos 6.4 インストール ISO のダウンロード場所を指定します。Oz は、バージョン情報を使って、使用する kickstart ファイルを識別します。この場合は、RHEL6.auto になります。リポジトリーとして EPEL を追加し、このファイルの packages セクションに指定されている epel-releasecloud-utilscloud-init パッケージをインストールします。

kickstart ファイルを使用して OS の初期インストールを終えると、Oz はアップデートと行うとともにイメージをカスタマイズします。Oz は libvirt が作成する eth0 デバイスへの参照をすべて削除します。また、XML ファイルの command セクションの指定にもとづいてカスタマイズを行います。

以下を実行します。

# oz-install -d3 -u centos64.tdl -x centos64-libvirt.xml
  • -d3 フラグにより、Oz が実行中の状態を表示するように指定します。
  • -u により、初期インストール完了後に、Oz がカスタマイズ (追加パッケージのインストール、コマンドの実行) を行うように指定します。
  • -x フラグにより、Oz が libvirt XML ファイルを書き出すのに使用するファイル名を指定します (指定しない場合、デフォルトでは centos64Apr_03_2013-12:39:42 のようなファイル名になります)。

-u フラグを使用しない場合、またはファイルを編集して追加カスタマイズしたい場合、oz-install が作成した libvirt XML ファイルを用いて、oz-customize コマンドを実行できます。例:

# oz-customize -d3 centos64.tdl centos64-libvirt.xml

Oz は libvirt を呼び出して KVM 内でイメージを起動してから、Oz はインスタンスに SSH でログインし、カスタマイズを実行します。

VeeWee

VeeWee は、よく Vagrant ボックスを構築するのに使用されますが、KVM イメージを構築するためにも使用できます。

Packer

Packer は、単一の設定ファイルから複数のプラットフォーム向けのマシンイメージを作成するツールです。

image-bootstrap

image-bootstrap は、ブート可能な仮想マシンイメージを生成するコマンドラインツールです。 Arch、 Debian、 Gentoo、 Ubuntu に対応しており、 OpenStack で利用できるイメージを生成できます。

imagefactory

imagefactory は、さまざまなクラウドプロバイダー向けのイメージの構築、変換、アップロードを自動化するために設計された、比較的新しいツールです。バックエンドとして Oz を使用し、OpenStack ベースのクラウドに対応しています。

KIWI

KIWI OS image builder は、オペレーティングシステムイメージ作成ツールで、 Linux をサポートするハードウェアプラットフォーム向けのイメージや、仮想化システム、クラウドシステム向けのイメージを作成できます。 openSUSE、 SUSE Linux Enterprise、 Red Hat Enterprise Linux ベースのイメージ作成が可能です。 KIWI の使い方は openSUSE Documentation で説明されています

SUSE Studio

SUSE Studio は、ソフトウェアアプリケーションを Web ブラウザーで構築、テストするための Web アプリケーションです。物理、仮想、クラウドベースのアプリケーションの作成をサポートしています。ディストリビューションとして SUSE Linux Enterprise と openSUSE を使用した OpenStack ベースのクラウド用のイメージを構築できます。

virt-builder

virt-builder は、新規の仮想マシンを素早く作成するためのツールです。ローカルやクラウドで使用するための様々な VM を、普通は数分で作成できます。virt-builder ではこれらの VM をカスタマイズする様々な方法が提供されています。すべてコマンドラインから実行でき、ルート権限が必要なものはないため、簡単に自動化やスクリプト化ができます。

以下のスクリプトを実行し、イメージを構築します。

# virt-builder fedora-23 -o image.qcow2 --format qcow2 \
  --update --selinux-relabel --size 20G

インストール可能なオペレーティングシステムの一覧を表示するには、以下のようにします。

$ virt-builder --list

作成したイメージを virsh で libvirt に取り込みます。

# virt-install --name fedora --ram 2048 \
  --disk path=image.qcow2,format=qcow2 --import
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.