概要
KIWIはオペレーティングシステムのイメージを作成するためのシステムです。イメージは、オペレーティングシステム、そのアプリケーションおよび設定、OSのファイルシステム構造、追加メタデータ(追加がある場合)、および(イメージタイプによっては)ディスクのジオメトリとパーティションテーブルのデータを含むファイルを保持するディレクトリです。KIWIでは、LiveCDおよびLiveDVD、USBスティック、VMwareのような完全な仮想システムで再生する仮想ディスク、ハイパーバイザの準仮想化用のXENイメージ、ネットワークからブートするためのPXE環境を作成できます。
KIWIでイメージを構築するには、次の前提条件を満たす必要があります。
動作に十分な空きディスク容量
KIWIは複数のパッケージに分割されており、さまざまなイメージタイプをターゲットとしています。まず、ベースパッケージkiwiが必要です。ターゲットのイメージに応じて、次のパッケージを必要とします。
|
イメージタイプ |
パッケージ名 |
|---|---|
|
インストールメディア |
|
|
仮想化 |
|
|
USBスティック |
|
|
ネットワーククライアント |
|
kiwi-docパッケージをインストールします。設定例がいくつか用意されており、構造と内容を理解できるようになっています。
KIWI設定ファイル、およびその構造について理解します。これはRELAX NGスキーマに基づき、/usr/share/doc/packages/kiwi/kiwi.htmlのkiwiパッケージ内にドキュメントがあります。設定ファイルを最初から作成する場合、あるいは要素または属性を挿入する場合に、このドキュメントが必要となります。
KIWIの構築プロセスは3つのステップに分けられます。
物理拡張(準備). この段階では新規ファイルシステムの内容を準備します。この手順の間、ルートディレクトリが作成され、ユーザはイメージ上にどのパッケージをインストールするかを決定し、またどのユーザ設定ファイルを含めるかを決定します。
論理拡張(作成). この段階では、適切な準備手順を必要とします。論理拡張ステップでは、最初のステップに基づきオペレーティングシステムイメージが作成されます。
Deployment. 作成されたイメージタイプは、ハードディスクへのインストールや仮想システム(VMware、Qemu、VirtualBox)による再生など、さまざまな方法で展開できます。
KIWIでイメージタイプを構築するにはイメージの説明が必要です。イメージの説明は、少なくとも1つのconfig.xmlファイル、または拡張子*.kiwiを含むディレクトリです。
次の表にはその他のオプション情報が含まれています。ただし、これらの情報のほとんどが、オペレーティングシステムの最近の機能には必須の情報です。
表17.1 イメージの説明のその他のファイルおよびディレクトリ¶
|
ファイル/ディレクトリ |
説明 |
|---|---|
|
|
オプションのサブディレクトリ。すべてのイメージパッケージのインストール後に実行される、Bashスクリプトを含みます。 |
|
|
物理拡張作成時のオプションの設定スクリプト |
|
|
各イメージの説明の設定ファイル(17.3.2項を参照) |
|
|
アーカイブ(ISOイメージにのみ使用) |
|
|
|
|
|
AutoYaSTによって作成された設定ファイル |
|
|
YaST firstbootサービスを制御する設定ファイル |
|
|
準備ステップ作成時のオプションの設定スクリプト |
|
|
すべてのイメージパッケージをインストールした後で変更する他のディレクトリ、特別ファイル、スクリプトを含みます。 |
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="..."><description type="system">
<author>...</author> <contact>...</contact> <specification>...</specification> </description> <preferences>
<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">
<user name="root" pwd="" home="/root"/> </users> <repository type="rpm-md">
<source path="/home/rpmdir"/> </repository> <packages type="image" patternPackageType="onlyRequired">
<package name="yast2-live-installer"/> <package name="pam"/> <!-- List of packages reduced --> </packages>
すべてのKIWI設定ファイルのルート要素。すべてのファイルにバージョン番号が必要です。オプションの | |
このイメージの説明の作成者、その連絡先アドレス、および簡単な説明など必須の記述を含みます。 | |
このイメージのバージョン、使用されているパッケージマネージャ、サポートされているイメージタイプ、その他の設定など必須の設定情報を含みます。 | |
オプションの | |
パッケージマネージャによって使用されるリポジトリの必須リストを含みます。 | |
イメージに含めるパッケージの必須リストを含みます。 |
設定フファイルに関する詳細については、上記のHTMLページを参照してください。
このセクションでは、KIWIでのアプライアンスの作成方法を説明します。アプライアンスは特定のタスクのために特別に設計されたオペレーティングシステムです。たとえばオフラインプログラムに特定したアプライアンスを作成することができます。
kiwi-docパッケージに含まれているすべての例で、イメージ作成のための有効なインストールソースが必要です。通常、例はネットワークリソースに接続されます。ネットワーク帯域が高いほど、イメージ作成速度は速くなります。高速ネットワークがない場合、あるいは既存のネットワークを使用したくない場合は、ローカルインストールリソースを作成します。次の手順に従います。
インストールDVDを収集します。
シェルを開きrootになります。
ローカルインストールディレクトリ用のディレクトリを作成します。例では通常、パス/image/CDs/full-を使用します。プレースホルダVERSION-ARCHVERSIONおよびARCHをそれぞれの値に置き換えます。
メディアをマウントします。DRIVEプレースホルダをそれぞれのデバイス(通常はdvd、cdrom)に置き換えます。
mount -o loop /dev/DRIVE /mntメディアの内容をすべてインストールディレクトリにコピーします。
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>
イメージは仮想ディスクイメージで、すべてのパーティション、ブートローダ情報、実際のディスクにあるパッケージが含まれます。ISOイメージを作成するには、次の手順に従います。
パッケージkiwiおよびkiwi-docをインストールし、依存関係があれば解決します。
シェルを開きrootになります。
ディレクトリ/usr/share/doc/packages/kiwi/examples/suse-11.0/suse-oem-preloadを現在のディレクトリにコピーします。
ファイルconfig.xmlを開いて要素repositoryをみつけます。ローカルインストールソースを使用するには、17.4.1項で詳細を参照してください。
KIWIを次のコマンドを使用して実行し、最初の段階(「物理拡張」)を準備します。
kiwi --prepare suse-oem-preload --root oem
ISOイメージを構築します。
kiwi --create oem --type iso --destdir /tmp/myoem
NFS機能でイメージを作成するには、次の手順に従います。
シェルを開きrootになります。
ディレクトリ/usr/share/doc/packages/kiwi/examples/suse-11.1/suse-oem-preloadを現在のディレクトリにコピーします。
ファイルsuse-oem-preload/config.xmlを開き、属性type="image"を含むpackages要素をみつけます。
<packages type="image">と</packages>の間に次の行を挿入し、ファイルを保存します。
<package name="nfs-client"/>
ステップ 5の説明に従い、イメージを再構築します。
KIWIポータル(http://en.opensuse.org/Portal:KIWI)のドキュメントで、詳しい情報を参照してください。