Oracle Solaris 10 9/10 インストールガイド (カスタム JumpStart/上級編)

第 5 章 カスタムルールおよびプローブキーワードの作成 (作業)

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


注 –

Solaris ZFS ルートプールをインストールする場合は、第 9 章JumpStart による ZFS ルートプールのインストールの制限事項とプロファイルの例を参照してください。


プローブキーワード

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

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

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

プローブキーワードと値については、「プローブキーワードと値」を参照してください。

custom_probes ファイルの作成

「ルールキーワードと値の説明」「プローブキーワードと値」で説明されているルールキーワードとプローブキーワードでは、ニーズに合わない場合もあります。custom_probes ファイルを作成して、独自のカスタムルールまたはプローブキーワードを定義できます。

custom_probes ファイルは、2 種類のタイプの関数を含む Bourne シェルスクリプトです。custom_probes ファイルは、rules ファイルを保存したのと同じ JumpStart ディレクトリに保存する必要があります。次に、custom_probes ファイルに定義できる 2 種類の関数を示します。

custom_probes ファイルの構文

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


注 –

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

rules ファイル内で対応するカスタムルールキーワードを使用する場合、引数は順番に解釈されます。この順番は、キーワードの直後から開始し、次に && または開始スクリプトが現れる直前で終了します。


custom_probes ファイルは、次の要件を満たしている必要があります。

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

custom_probes 内の関数名の構文

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

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

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

  1. テキストエディタを使用して Bourne シェルスクリプトのテキストファイルを作成します。このファイルに custom_probes という名前を付けます。

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


    注 –

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

    rules ファイル内で対応するカスタムルールキーワードを使用する場合、引数は順番に解釈されます。この順番は、キーワードの直後から開始し、次に && または開始スクリプトが現れる直前で終了します。


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

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

custom_probes ファイルとキーワードの例

プローブ関数と比較関数の例は次のディレクトリにも入っています。

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


例 5–1 custom_probes ファイル

#!/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
  if
}

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


注 –

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



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

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

custom_probes ファイルの妥当性検査

プロファイル、rules ファイル、および custom_probes ファイルを使用する前に、check スクリプトを実行して、ファイルが正常に設定されていることを検証する必要があります。すべてのプロファイル、ルール、およびプローブ関数と比較関数が正しく設定されている場合は、rules.ok ファイルと custom_probes.ok ファイルが作成されます。表 5–1 に、check スクリプトの実行内容を示します。

表 5–1 check スクリプトの動作

手順 

説明 

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

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

# version=2 checksum=num

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

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


    注 –

    check スクリプトは、Solaris Operating System DVD または Solaris SOFTWARE - 1 CD の Solaris_10/Misc/jumpstart_sample ディレクトリにあります。


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

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


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

    使用しているシステムの check スクリプトではなく、プラットフォームに対応した Solaris ソフトウェアイメージの check スクリプトを使用して、custom_probes ファイルの妥当性を検査します。path は、ローカルディスク上のイメージか、マウントされた Solaris Operating System DVD または Solaris SOFTWARE - 1 CD 上のイメージです。

    以前のバージョンの Solaris を稼動中のシステムでは、このオプションを指定することにより、check の最新バージョンを実行します。

    -r file_name

    custom_probes 以外のファイル名を指定します。-r オプションを使用することで、一連の関数を custom_probes ファイル内にまとめる前にそれらの妥当性検査を実施できます。

    check スクリプトを実行すると、rules ファイル、custom_probes ファイル、および各プロファイルの妥当性が報告されます。エラーが検出されなければ、スクリプトは次のメッセージを表示します。 「The custom JumpStart configuration is ok」と表示され、JumpStart ディレクトリ内に rules.ok ファイルと custom_probes.ok ファイルが作成されます。

  4. custom_probes.ok ファイルが実行可能かどうか調べます。

    • 実行可能な場合、手順 5 へ進みます。

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


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