execution 要素は、イメージ作成処理中に実行される一連のチェックポイントを一覧表示します。チェックポイントは、それらがこのセクションに一覧表示されている順序で実行されます。それぞれのマニフェストには、デフォルトのインストールイメージの構築に必要なデフォルトのチェックポイントが含まれています。
イメージ作成処理中、チェックポイントはマニフェストに指定されている構築領域の内容を変更します。
特定のチェックポイントで構築処理の一時停止と再開を制御するには、distro_const コマンドオプションを使用します。段階的にイメージを構築する方法を参照してください。
構築領域には、pkg_image および boot_archive ディレクトリが含まれています。構築プロセス中、最終的なイメージに含められるすべての内容は、pkg_image ディレクトリに追加されます。異なる boot_archive ディレクトリ内にあるファイルは構築プロセス中に使用されてブートアーカイブファイルが作成され、これも pkg_image ディレクトリに追加されます。
各デフォルトのチェックポイントの次の簡単な説明は、ほとんどのマニフェストでチェックポイントが実行される順序で示されています。
transfer-ips-install – このチェックポイントでは、ディストリビューションコンストラクタは IPS のパブリッシャーと連絡を取り、transfer-ips-install 属性を使用して software 要素に一覧表示されているパッケージをイメージに追加します。
set-ips-attributes – このチェックポイントでは、コンストラクタはインストール対象システムによって使用されるパブリッシャーを設定します。これらの値は、set-ips-attributes 属性を指定して software 要素で設定されます。このチェックポイントによって設定される値は、自動インストールイメージを作成する場合は関係ありません。AI クライアントは、AI サーバーのパブリッシャーを使用するように構成されます。
pre-pkg-img-mod – このチェックポイントでは、コンストラクタはマニフェストの configuration 要素で指定された SMF サービスファイルをイメージにインポートします。また、コンストラクタはイメージを最適化するために一部のファイルを変更します。パッケージに関連するすべての操作およびチェックポイントは、このチェックポイントよりも前に置く必要があります。
ba-init – このチェックポイントでは、コンストラクタはマニフェストの ba-init セクションに一覧表示されているファイルをルートアーカイブに取り込みます。これらのファイルは pkg_image 領域から root_archive 領域にコピーされます。
このチェックポイントまでに行われたすべての変更は、構築されるイメージと、ルートアーカイブの両方に含められます。カスタムスクリプトからの変更が、ルートアーカイブとイメージの両方に組み込まれていることを確認する場合は、このチェックポイントの前にカスタムスクリプト用の新規チェックポイントを追加してください。
ba-config – このチェックポイントでは、コンストラクタはルートアーカイブにコピーされたファイルに追加の変更を実行します。コンストラクタはルートアーカイブのサイズを最小限に抑えるために、ブートプロセスの後半まで不要な他のファイルへのシンボリックリンクを作成します。
ba-arch – このチェックポイントでは、コンストラクタはルートアーカイブをパックし、pkg_image ディレクトリ内でルートアーカイブをファイルとして作成します。またコンストラクタは、構築されるシステムの種類に固有となるルートアーカイブへのすべての最適化を適用します。このチェックポイント以降では、ルートアーカイブはすでにパックされているため、カスタムスクリプトによるブートアーカイブ指定への変更はルートアーカイブに組み込まれません。
boot-setup – このチェックポイントでは、コンストラクタはマニフェストの boot_entry セクションで指定されるエントリに基づいて、GRUB2 メニューを設定します。このチェックポイントは、x86 システムのイメージにのみ適用されます。
pkg-img-mod – このチェックポイントでは、コンストラクタは構築されるイメージのメインアーカイブを作成し、pkg_image 領域を最適化します。コンストラクタは pkg_image ディレクトリ内のファイルを移動し、イメージ用のアーカイブを作成します。pkg_image ディレクトリに含まれるすべての内容がイメージに含められます。このチェックポイント以降のすべての追加はイメージに含められません。
create-iso – このチェックポイントは、pkg_image ディレクトリに含まれるすべての内容を含む .iso ファイルを構築します。
それぞれのチェックポイント要素には、チェックポイントスクリプトがある場所を指定する mod-path 属性が含まれています。また、一部のデフォルトのチェックポイントには、デフォルト値を持つ引数が含まれています。
dc_ai_sparc.xml サンプルマニフェストの次のチェックポイント例では、イメージ構築のためのブートアーカイブを作成し、イメージを構築するスクリプトを指定します。また、引数ごとに特定の値が指定された引数フィールドも含まれています。
<checkpoint name="ba-arch" desc="Boot Archive Archival" mod_path="solaris_install/distro_const/checkpoints/boot_archive_archive" checkpoint_class="BootArchiveArchive"> <kwargs> <arg name="size_pad">0</arg> <arg name="bytes_per_inode">0</arg> <arglist name="uncompressed_files"> <argitem>etc/svc/repository.db</argitem> <argitem>etc/name_to_major</argitem> <argitem>etc/minor_perm</argitem> <argitem>etc/driver_aliases</argitem> <argitem>etc/driver_classes</argitem> <argitem>etc/path_to_inst</argitem> <argitem>etc/default/init</argitem> <argitem>etc/nsswitch.conf</argitem> <argitem>etc/passwd</argitem> <argitem>etc/shadow</argitem> <argitem>etc/inet/hosts</argitem> </arglist> </kwargs> </checkpoint>
この例で示すように、kwargs 要素には、構築中にチェックポイントに渡す必要があるキーワード引数が含まれています。kwargs 要素には、チェックポイントに渡される個々のキーワードを指定する際に使用可能な arg name 要素が含まれています。arglist 要素には、チェックポイントに渡される複数の argitem 値の一覧も含まれています。この例には、arglist 要素の未圧縮ファイルの一覧が含まれています。
それぞれの kwargs リスト項目は二重引用符で囲まれています。二重引用符が使用されていない場合、または文字列全体が 1 組の二重引用符で囲まれている場合は、スペースおよび改行を含む文字列全体が 1 つの引数と解釈されます。引数をコンマで区切らないでください。
イメージの構築中に使用されるカスタムスクリプトを作成する場合、スクリプトの場所を指示するチェックポイント要素を追加する必要があります。カスタムスクリプトのチェックポイントには、カスタムスクリプトの場所を示す args 要素のみが必要です。詳細および例については、インストールイメージを作成する際のカスタムスクリプトの作成および使用を参照してください。
使用例 2 インストールイメージへの SVR4 パッケージの追加この例では、新しいチェックポイントがマニフェストに追加されます。この新しいチェックポイントは、イメージに追加される SVR4 パッケージとその場所を一覧表示します。その後、この新しいチェックポイントは実行セクションで参照されます。
最初に、新規 software 要素を追加することによって、新しいチェックポイントが作成されます。このチェックポイントには、ソフトウェアタイプとして SVR4、パッケージを検索する場所、およびパッケージをインストールする場所を指定します。
さらに、software_data 要素には、インストールされる特定の SVR4 パッケージが一覧表示されます。
<software name="transfer-svr4-install" type="SVR4"> <destination> <dir path="{PKG_IMAGE_PATH}"/> </destination> <source> <publisher/> <origin name="path-to-packages"/> </publisher> </source> <software_data action="install"> <name>SUNWpackage1</name> <name>SUNWpackage2</name> </software_data> </software>
{PKG_IMAGE_PATH} および {BOOT_ARCHIVE} の値は、チェックポイントに含まれる場合、distro_const コマンドによって、それぞれパッケージイメージとブートアーカイブの構築領域へのパスに置き換えられます。この例では、SVR4 パッケージはパッケージイメージディレクトリにインストールされます。
最後に、この新しいチェックポイントは実行セクションで参照されます。チェックポイント名は任意の文字列ですが、この例では checkpoint_class 値は TransferSVR4 である必要があります。
<execution stop_on_error="true"> <checkpoint name="transfer-ips-install" desc="Transfer pkg contents from IPS" mod_path="solaris_install/transfer/ips" checkpoint_class="TransferIPS"/> <checkpoint name="set-ips-attributes" desc="Set post-install IPS attributes" mod_path="solaris_install/transfer/ips" checkpoint_class="TransferIPS"/> <checkpoint name="transfer-svr4-install" desc="Transfer pkg contents from SVR4 packages" mod_path="solaris_install/transfer/svr4" checkpoint_class="TransferSVR4"/>
ソフトウェア名はチェックポイント名と一致する必要があることに注意してください。この例では、どちらも「transfer-svr4–install」です。
使用例 3 インストールイメージ内のメディアのハッシュ作成checksums チェックポイントを指定すると、ユーザーは、distro_const コマンドによって生成されるメディアのハッシュを自動生成できます。
<checkpoint name="checksums" desc="Checksum calculation for media" mod_path="solaris_install/distro_const/checkpoints/checksums" checkpoint_class="Checksums"> <kwargs> <arglist name="algorithms"> <argitem file_path="/tmp/md5sums.txt">md5</argitem> <argitem>sha1</argitem> <argitem>sha224</argitem> <argitem>sha256</argitem> <argitem>sha384</argitem> <argitem>sha512</argitem> </arglist> </kwargs> </checkpoint>
arglist 要素には、生成されたメディアのハッシュを生成するために使用されるすべてのアルゴリズムが含まれます。各 argitem はアルゴリズムを指定します。有効なアルゴリズムを確認するには /usr/bindigest -l コマンドを実行します。各 argitem には、そのアルゴリズムによって生成されるハッシュの末尾に追加される、追加ファイルの絶対パスを指定する path 属性を指定できます。アルゴリズムを指定しない場合、デフォルトは md5 です。
イメージの構築中、アルゴリズムごとに、各メディアのチェックサムが格納されたファイルが生成されます。