Solaris 8 のインストール (上級編)

第 8 章 カスタムルールおよびプローブキーワードの作成方法

この章では、独自のカスタムルールとプローブキーワードを作成するための情報と手順を示します。


注 -

製品名は Solaris 8 ですが、コードと、パス名またはパッケージのパス名は、Solaris_2.8 または SunOS_5.8 と示される場合があります。必ず記述どおりのコードまたはパスを使用してください。


プローブキーワード

プローブキーワードとは

プローブキーワードを理解するには、まずルールキーワードが何であるかを思い出してください。これは、ホスト名 (hostname) やメモリーサイズ (memsize) などの一般的なシステム属性を記述する事前定義された字句単位または語です。ルールキーワードとそれに関連する値を使用すると、プロファイルと同じ属性を持つシステムを照合できます。プロファイルには、グループ内の各システムに Solaris ソフトウェアをどのようにインストールするかが定義されています。

カスタム JumpStart の環境変数は、begin および finish スクリプトで使用しますが、必要に応じて設定します。たとえば、すでにシステムにインストールされているオペレーティングシステムに関する情報は、installed ルールキーワードを使用した場合にのみ (SI_INSTALLED で) 入手できます。

ただし場合によっては、システムの照合とプロファイルの実行以外の目的で、これと同じ情報を begin および finish スクリプトで抽出する必要があります。プローブキーワードは、この解決方法となります。これらのキーワードを使用すると、照合条件を設定してプロファイルを実行しなくても、同じ属性情報を抽出できます。

プローブキーワードと値

表 8-1 は、各ルールキーワードと対応するプローブキーワードを説明しています。


注 -

プローブキーワードは、rules ファイルの最初、またはその近くに指定してください。


表 8-1 プローブキーワードの説明

ルールキーワード 

対応するプローブキーワード 

プローブキーワードの説明 

any

なし 

 

arch

arch

カーネルアーキテクチャー (i386 または SPARC) を判断して SI_ARCH を設定します。

disksize

disks

システムのディスクサイズ (MB) をカーネルプローブ順序 (c0t3d0s0、c0t3d0s1、c0t4d0s0) で返し、SI_DISKLISTSI_DISKSIZESSI_NUMDISKS、および SI_TOTALDISK を設定します。

domainname

domainname

システムの NIS または NIS+ ドメイン名、あるいは (もしなければ) 空白を返して、SI_DOMAINNAME を設定します (このキーワードは、実際には domainname(1M) の出力を返します)。

hostaddress

hostaddress

システムの IP アドレス (lo0 ではない ifconfig(1M) -a の出力にリストされた最初のアドレス) を返して、SI_HOSTADDRESS を設定します。

hostname

hostname

システムのホスト名 (uname(1) -n からの出力) を返して、SI_HOSTNAME を設定します。

installed

installed

システムにインストールされた Solaris オペレーティング環境のバージョン名、Solaris_2.x または Solaris_x を返して、SI_ROOTDISKSI_INSTALLED を設定します。

JumpStart で Solaris リリースが検出されたが、バージョンを判別できない場合、返されるバージョンは SystemV になります。

karch

karch

システムのプラットフォームグループ (たとえば、i86pc、sun4m、および sun4u) を返して、SI_KARCH を設定します。付録 A 「プラットフォーム名とグループ」 には、プラットフォーム名のリストを記載してあります。

memsize

memsize

システム上の物理メモリーのサイズ (MB) を返して、SI_MEMSIZE を設定します。 

model

model

システムのプラットフォーム名を返して、SI_MODEL を設定します。付録 A 「プラットフォーム名とグループ」 に、プラットフォーム名のリストを記載してあります。

network

network

システムのネットワーク番号を返します。この番号は、JumpStart でシステムの IP アドレスとサブネットマスク (lo0 ではない ifconfig(1M) -a の出力にリストされた最初のアドレスから抽出されたもの) の論理積をとって判断されます。SI_NETWORK も設定します。

osname

osname

CD で検出された Solaris オペレーティング環境のバージョンおよびオペレーティングシステム名、Solaris_2.x または Solaris_x を返して、SI_OSNAME を設定します。

JumpStart で Solaris リリースが検出されたが、バージョンを判別できない場合、返されるバージョンは SystemV になります。

 

rootdisk

システムのルートディスクの名前とサイズ (MB) を返して、SI_ROOTDISK を設定します。

totaldisk

totaldisk

システム上のディスク領域の合計 (MB) を返して、SI_TOTALDISK を返します。ディスク領域の合計には、システムに接続された操作可能なディスクすべてが含まれます。

カスタムキーワード

カスタムキーワードとは

表 6-3表 8-1 で説明したルールおよびプローブキーワードでは不十分な場合は、custom_probes ファイルを作成して、独自のカスタムルールまたはプローブキーワードを定義できます。

custom_probes ファイルの作成

custom_probes ファイルとは

custom_probes ファイルは、rules ファイルと同じ JumpStart ディレクトリになければなりません。このファイルは、次の 2 つのタイプの関数を含む Bourne シェルスクリプトです。

表 8-2 custom_probes に定義する関数のタイプ

関数のタイプ 

説明 

プローブ 

必要な情報を収集するか、または実際の作業を実行して、定義された対応する SI_ 環境変数を設定します。プローブ関数はプローブキーワードになります。

比較 

対応するプローブ関数を呼び出して、プローブ関数の出力を比較し、キーワードが一致する場合は 0、キーワードが一致しない場合は 1 を返します。比較関数はルールキーワードになります。 

custom_probes ファイルの構文

custom_probes ファイルには、任意の有効な Bourne シェルコマンド、変数、またはアルゴリズムを含めることができます。


注 -

custom_probes ファイルで単一の引数を必要とするプローブおよび比較関数を定義できます。rules ファイルで、結果的に対応するカスタムプローブキーワードを使用する場合、このキーワードの後に続く引数が ($1 として) 解釈されます。

rules ファイルで、結果的に対応するカスタムルールキーワードを使用する場合、引数はこのキーワードの後から解釈され、次の && または begin スクリプトのどちらか最初にきた方の前で解釈が終了します。


custom_probes ファイルは、次のとおりでなければなりません。

より明確で効果的な構成にするために、最初にすべてのプローブ関数をファイルの一番上に定義してから、比較関数を続けて定義してください。

custom_probes の関数名の構文

プローブ関数名は、probe_ で始める必要があります。比較関数名は、cmp_ で始める必要があります。

probe_ から始まる関数は、新しいプローブキーワードを定義します (たとえば関数 probe_tcx は、新しいプローブキーワード tcx を定義します)。cmp_ で始まる関数は、新しいルールキーワードを定義します (たとえば cmp_tcx は、新しいルールキーワード tcx を定義します)。

custom_probes ファイルの例

この custom_probes ファイルには、TCX グラフィックスカードがあるかどうかをテストするプローブおよび比較関数が含まれます。


注 -

プローブおよび比較関数の追加例は、次の場所にあります。


#!/bin/sh
# 
# custom_probe script to test for the presence of a TCX graphics card.
# 
 
# 
# PROBE FUNCTIONS
# 
probe_tcx() {
  SI_TCX=`modinfo | grep tcx | nawk '{print $6}'`
  export SI_TCX
}
 
# 
# COMPARISON FUNCTIONS
# 
cmp_tcx() {
  probe_tcx
 
  if [ "X${SI_TCX}" = "X${1}" ]; then
     return 0
  else
     return 1
  fi
}

rules ファイルで使用されるカスタムプローブキーワードの例

この例の rules ファイルは、以前の例 (tcx) で定義されたプローブキーワードの使用法を示しています。TCX グラフィックスカードがシステムにインストールされていて検出されると、profile_tcx が実行されます。そうでない場合は、profile が実行されます。


注 -

プローブキーワードは、rules ファイルの最初またはその近くに指定して、プローブキーワードに依存する可能性がある他のルールキーワードより前に読み取られて実行されるようにしてください。


 
probe tcx
tcx     tcx     -     profile_tcx     -
any     any     -     profile         -

custom_probes ファイルを作成する方法

  1. 選択したテキストエディタを使用して、Bourne シェルスクリプトのテキストファイル custom_probes を作成します。

  2. custom_probes テキストファイルで、必要なプローブ関数と比較関数を定義します。


    注 -

    custom_probes ファイルには、引数を必要とするプローブおよび比較関数を定義できます。rules ファイルで、結果的に対応するカスタムプローブキーワードを使用する場合、このキーワードの後に続く引数は順番に ($1、$2 などとして) 解釈されます。

    rules ファイルで、結果的に対応するカスタムルールキーワードを使用する場合、引数はこのキーワードの後から解釈され、次の && または begin スクリプトのどちらか最初にきた方の前で解釈が終了します。


  3. custom_probes ファイルを JumpStart ディレクトリに保存します (rules ファイルと同じ)。

    rootrules ファイルを所有し、そのアクセス権が 644 に設定されていることを確認します。

custom_probes ファイルの妥当性検査

プロファイル、rules、および custom_probes ファイルを使用するには、check スクリプトを実行して、これらのファイルの設定が正しいかどうかを検査する必要があります。すべてのプロファイル、ルール、およびプローブ関数と比較関数が正しく設定されている場合は、rules.ok ファイルと custom_probes.ok ファイルが作成されます。表 8-3 は、check スクリプトの実行内容を説明しています。

表 8-3 check を使用した場合の動作

段階 

説明 

check は、custom_probes ファイルを検索します。

ファイルが存在する場合、check は、custom_probes ファイルから custom_probes.ok ファイルを作成して、すべてのコメントとブランク行を削除し、すべての Bourne シェルコマンド、変数、およびアルゴリズムを保存して、次のコメント行を最後に追加します。

# version=2 checksum=num


注 -

rootcustom_probes.ok ファイルを所有し、そのアクセス権が 644 に設定されていることを確認してください。


check の構文

次に、custom_probes ファイルの検査に使用する check スクリプトの構文を示します。


$ ./check [[-p path -r file_name]]

表 8-4 check スクリプトの引数の説明

引数 

説明 

-p path

使用しているシステムの check スクリプトではなく、プラットフォームの Solaris 8 SOFTWARE 1 of 2 CD イメージの check スクリプトを使用して、custom_probes ファイルを妥当性検査します。

システムが以前のバージョンの Solaris を実行している場合、このオプションを使用して、一番新しい check バージョンを実行します。 

-r file_name

custom_probes 以外のファイル名を指定します。このオプションを使用すると、一連の関数の妥当性を検査してから、custom_probes ファイルに統合できます。

custom_probes ファイルを妥当性検査する方法

  1. check スクリプトが JumpStart ディレクトリにあることを確認します。


    注 -

    check スクリプトは、Solaris 8 SOFTWARE 1 of 2 CD (SPARC) および Solaris 8 SOFTWARE 1 of 2 CD (Intel) の Solaris_8/Misc/jumpstart_sample ディレクトリにあります。


  2. JumpStart ディレクトリに移動します。

  3. check スクリプトを実行して、rules および custom_probes ファイルの妥当性を検査します。


    $ ./check [[-p path -r file_name]]

    check スクリプトを実行すると、rules および custom_probes ファイルと各プロファイルの妥当性が表示されます。エラーが検出されない場合は、「The custom JumpStart configuration is ok」と表示されて、JumpStart ディレクトリに rules.ok および custom_probes.ok ファイルが作成されます。

  4. custom_probes.ok ファイルが

    • 実行可能な場合は、ここで作業は終了です。

    • 実行可能でない場合は、次のコマンドを入力します。


      chmod +x custom_probes