Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
適用先 SUSE Linux Enterprise Server 11 SP4

17 KIWI

KIWIはオペレーティングシステムのイメージを作成するためのシステムです。イメージは、オペレーティングシステム、そのアプリケーションおよび設定、OSのファイルシステム構造、追加メタデータ(追加がある場合)、および(イメージタイプによっては)ディスクのジオメトリとパーティションテーブルのデータを含むファイルを保持するディレクトリです。KIWIでは、LiveCDおよびLiveDVD、USBスティック、VMwareのような完全な仮想システムで再生する仮想ディスク、ハイパーバイザの準仮想化用のXENイメージ、ネットワークからブートするためのPXE環境を作成できます。

17.1 KIWIの前提条件

KIWIでイメージを構築するには、次の前提条件を満たす必要があります。

  1. 動作に十分な空きディスク容量

  2. KIWIは複数のパッケージに分割されており、さまざまなイメージタイプをターゲットとしています。まず、ベースパッケージkiwiが必要です。ターゲットのイメージに応じて、次のパッケージを必要とします。

    イメージタイプ

    パッケージ名

    インストールメディア

    kiwi-desc-oemboot

    仮想化

    kiwi-desc-xenboot

    USBスティック

    kiwi-desc-usbboot

    ネットワーククライアント

    kiwi-desc-netboot

  3. kiwi-docパッケージをインストールします。設定例がいくつか用意されており、構造と内容を理解できるようになっています。

  4. KIWI設定ファイル、およびその構造について理解します。これはRELAX NGスキーマに基づき、/usr/share/doc/packages/kiwi/kiwi.htmlkiwiパッケージ内にドキュメントがあります。設定ファイルを最初から作成する場合、あるいは要素または属性を挿入する場合に、このドキュメントが必要となります。

17.2 KIWIの構築プロセスの理解

KIWIの構築プロセスは3つのステップに分けられます。

  1. 物理拡張(準備):  この段階では新規ファイルシステムの内容を準備します。この手順の間、ルートディレクトリが作成され、ユーザはイメージ上にどのパッケージをインストールするかを決定し、またどのユーザ設定ファイルを含めるかを決定します。

  2. 論理拡張(作成):  この段階では、適切な準備手順を必要とします。論理拡張ステップでは、最初のステップに基づきオペレーティングシステムイメージが作成されます。

  3. Deployment:  作成されたイメージタイプは、ハードディスクへのインストールや仮想システム(VMware、Qemu、VirtualBox)による再生など、さまざまな方法で展開できます。

17.3 イメージの説明

KIWIでイメージタイプを構築するにはイメージの説明が必要です。イメージの説明は、少なくとも1つのconfig.xmlファイル、または拡張子*.kiwiを含むディレクトリです。

17.3.1 イメージの説明の内容

次の表にはその他のオプション情報が含まれています。ただし、これらの情報のほとんどが、オペレーティングシステムの最近の機能には必須の情報です。

表 17.1: イメージの説明のその他のファイルおよびディレクトリ

ファイル/ディレクトリ

説明

config/

オプションのサブディレクトリ。すべてのイメージパッケージのインストール後に実行される、Bashスクリプトを含みます。

config.sh

物理拡張作成時のオプションの設定スクリプト

config.xml

各イメージの説明の設定ファイル(17.3.2項を参照)

config-cdroot.tgz

アーカイブ(ISOイメージにのみ使用)

config-cdroot.sh

config-cdroot.tgzから抽出したデータの操作

config-yast-autoyast.xml

AutoYaSTによって作成された設定ファイル

config-yast-firstboot.xml

YaST firstbootサービスを制御する設定ファイル

images.sh

準備ステップ作成時のオプションの設定スクリプト

root/

すべてのイメージパッケージをインストールした後で変更する他のディレクトリ、特別ファイル、スクリプトを含みます。

17.3.2 config.xmlファイル

イメージの説明に関するすべての情報は、中央の設定XMLファイルconfig.xmlに保存されます。KIWIが実行されるたびに、config.xmlはRELAX NGスキーマに対して検証されます(このスキーマ言語の詳細については、http://www.relaxng.orgを参照してください)。したがって、RELAX NGをサポートする適切なXMLエディタを使用するか、またはHTMLファイル/usr/share/doc/packages/kiwi/schema/kiwi.xsd.htmlにあるスキーマに関するマニュアルを使用することをお勧めします。

設定ファイルは次のように複数の部分で構成されています。

  • 作成者に関する説明、連絡先情報、および簡単な説明。

  • 論理拡張段階で必要な設定オプション

  • ユーザに関する情報、ユーザ名、ユーザのホームディレクトリとパスワード。

  • リポジトリへのリンク。

  • 定義済みのイメージタイプに使用されるパッケージのリスト。

  • 上記のRELAX NGスキーママニュアルのHTMLファイルで表示できる他の重要度の低い情報

次の例でファイルのスケルトンを示します。

例 17.1: KIWI設定ファイル
<image schemeversion="2.0" name="..."> 1
  <description type="system"> 2
    <author>...</author>
    <contact>...</contact>
    <specification>...</specification>
  </description>
  <preferences> 3
    <type primary="true" boot="..." flags="...">iso</type>
    <type boot="..." filesystem="ext3" format="vmdk">vmx</type>
    <type boot="..." filesystem="ext3">xen</type>
    <type boot="..." filesystem="squashfs" flags="unified">oem</type>
    <version>2.7.0</version>
    <size unit="M">780</size>
    <packagemanager>zypper</packagemanager>
    <rpm-check-signatures>False</rpm-check-signatures>
    <rpm-force>False</rpm-force>
    <locale>en_US.UTF-8</locale>
    <oem-swap>no</oem-swap>
    <oem-boot-title>USB</oem-boot-title>
  </preferences>
  <users group="users"> 4
    <user name="root" pwd="" home="/root"/>
  </users>
  <repository type="rpm-md"> 5
    <source path="/home/rpmdir"/>
  </repository>
  <packages type="image" patternPackageType="onlyRequired"> 6
    <package name="yast2-live-installer"/>
    <package name="pam"/>
    <!-- List of packages reduced -->
  </packages>

1

すべてのKIWI設定ファイルのルート要素。すべてのファイルにバージョン番号が必要です。オプションのkiwirevision属性は、KIWIのSVN改訂を指定するために使用できます。

2

このイメージの説明の作成者、その連絡先アドレス、および簡単な説明など必須の記述を含みます。

3

このイメージのバージョン、使用されているパッケージマネージャ、サポートされているイメージタイプ、その他の設定など必須の設定情報を含みます。

4

オプションのusers要素には、イメージに追加されるすべてのユーザのリストが含まれます。user要素には、ユーザ名、ユーザのホームディレクトリへのパス、パスワード、シェルが含まれます。

5

パッケージマネージャによって使用されるリポジトリの必須リストを含みます。

6

イメージに含めるパッケージの必須リストを含みます。

設定フファイルに関する詳細については、上記のHTMLページを参照してください。

17.4 KIWIでのアプライアンスの作成

このセクションでは、KIWIでのアプライアンスの作成方法を説明します。アプライアンスは特定のタスクのために特別に設計されたオペレーティングシステムです。たとえばオフラインプログラムに特定したアプライアンスを作成することができます。

17.4.1 ローカルインストールソースの作成

kiwi-docパッケージに含まれているすべての例で、イメージ作成のための有効なインストールソースが必要です。通常、例はネットワークリソースに接続されます。ネットワーク帯域が高いほど、イメージ作成速度は速くなります。高速ネットワークがない場合、あるいは既存のネットワークを使用したくない場合は、ローカルインストールリソースを作成します。次の手順に従います。

  1. インストールDVDを収集します。

  2. シェルを開きrootになります。

  3. ローカルインストールディレクトリ用のディレクトリを作成します。例では通常、パス/image/CDs/full-VERSION-ARCHを使用します。プレースホルダVERSIONおよびARCHをそれぞれの値に置き換えます。

  4. メディアをマウントします。DRIVEプレースホルダをそれぞれのデバイス(通常はdvdcdrom)に置き換えます。

    mount -o loop /dev/DRIVE /mnt
  5. メディアの内容をすべてインストールディレクトリにコピーします。

    cp -a /mnt/* /images/CDs/full-VERSION-ARCH

ローカルインストールソースを使用するには、repository要素でローカルインストールソースを有効にします。

<repository type="...">
  <!-- Remove the comment markers in the next line -->
  <!-- <source path="/image/CDs/full-VERSION-ARCH" -->
  <source path="opensuse://openSUSE:11.0/standard"/> 
</repository>

17.4.2 イメージの作成

イメージは仮想ディスクイメージで、すべてのパーティション、ブートローダ情報、実際のディスクにあるパッケージが含まれます。ISOイメージを作成するには、次の手順に従います。

  1. パッケージkiwiおよびkiwi-docをインストールし、依存関係があれば解決します。

  2. シェルを開きrootになります。

  3. ディレクトリ/usr/share/doc/packages/kiwi/examples/suse-11.0/suse-oem-preloadを現在のディレクトリにコピーします。

  4. ファイルconfig.xmlを開いて要素repositoryをみつけます。ローカルインストールソースを使用するには、17.4.1項で詳細を参照してください。

  5. KIWIを次のコマンドを使用して実行し、最初の段階(物理拡張)を準備します。

    kiwi --prepare suse-oem-preload --root oem
  6. ISOイメージを構築します。

    kiwi --create oem --type iso --destdir /tmp/myoem

17.4.3 NFSを使用したプリロードイメージの作成

NFS機能でイメージを作成するには、次の手順に従います。

  1. シェルを開きrootになります。

  2. ディレクトリ/usr/share/doc/packages/kiwi/examples/suse-11.1/suse-oem-preloadを現在のディレクトリにコピーします。

  3. ファイルsuse-oem-preload/config.xmlを開き、属性type="image"を含むpackages要素をみつけます。

  4. <packages type="image"></packages>の間に次の行を挿入し、ファイルを保存します。

    <package name="nfs-client"/>
  5. ステップ 5の説明に従い、イメージを再構築します。

17.5 詳細情報

KIWIポータル(http://en.opensuse.org/Portal:KIWI)のドキュメントで、詳しい情報を参照してください。

このページを印刷