この章では、独自のカスタムルールとプローブキーワードを作成するための情報と手順を示します。
プローブキーワードを理解するには、まずルールキーワードが何であるかを思い出してください。ルールキーワードは、ホスト名 (hostname) やメモリーサイズ (memsize) などの一般的なシステム属性を記述する事前定義された字句単位または語です。ルールキーワードとそれに関連する値を使用すると、同じ属性を持つシステムをプロファイルに対応付けることができます。システム属性を対応させるこの方法では、グループ内の各システムに Solaris ソフトウェアをどのようにインストールするかが定義されます。
カスタム JumpStart の環境変数は、begin スクリプトおよび finish スクリプトで使用しますが、必要に応じて設定します。たとえば、すでにシステムにインストールされているオペレーティングシステムに関する情報を入手できるのは、installed ルールキーワードに続いて SI_INSTALLED を使用する場合だけです。
場合によっては、システムの照合とプロファイルの実行以外の目的で、この同じ情報を begin および finish スクリプトで抽出する必要があります。プローブキーワードは、この解決方法となります。プローブキーワードを使用すると、照合条件を設定してプロファイルを実行しなくても、同じ属性情報を抽出できます。
プローブキーワードと値の一覧は、プローブキーワードと値 を参照してください。
ルールキーワードと値の説明 と プローブキーワードと値 で説明したルールおよびプローブキーワードでは不十分な場合は、custom_probes ファイルを作成して、独自のカスタムルールまたはプローブキーワードを定義できます。
custom_probes ファイルは、2 種類のタイプの関数を含む Bourne シェルスクリプトです。custom_probes ファイルは、rules ファイルを保存したのと同じ JumpStart ディレクトリに保存する必要があります。次に、custom_probes ファイルに定義できる 2 種類の関数を示します。
プローブ – 必要な情報を収集するかあるいは実際の作業を実行し、定義された対応する SI_ 環境変数を設定します。プローブ関数はプローブキーワードになります。
比較 – 対応するプローブ関数を呼び出してプローブ関数の出力を比較し、キーワードが一致する場合は 0 、キーワードが一致しない場合は 1 を返します。比較関数はルールキーワードになります。
custom_probes ファイルには、任意の有効な Bourne シェルコマンド、変数、またはアルゴリズムを含めることができます。
custom_probes ファイルで単一の引数を必要とするプローブおよび比較関数を定義できます。rules ファイル内で対応するカスタムプローブキーワードを使用する場合、このキーワードの後に続く引数が ($1 として) 解釈されます。
rules ファイル内で対応するカスタムルールキーワードを使用する場合、引数はこのキーワードの後から解釈され、次の && または begin スクリプトのどちらか最初にきた方の前で解釈が終了します。
custom_probes ファイルは、次の要件を満たす必要があります。
より明確で効果的な構成にするために、最初にすべてのプローブ関数をファイルの一番上に定義してから、比較関数を続けて定義してください。
プローブ関数名は、probe_ で始める必要があります。比較関数名は、cmp_ で始める必要があります。
probe_ で始まる関数は、新しいプローブキーワードを定義します。たとえば、関数 probe_tcx は、新しいプローブキーワード tcx を定義します。cmp_ で始まる関数は、新しいルールキーワードを定義します。たとえば、cmp_tcx は、新しいルールキーワード tcx を定義します。
テキストエディタを使用して Bourne シェルスクリプトのテキストファイルを作成します。このファイルに custom_probes という名前を付けます。
custom_probes テキストファイルで、プローブ関数と比較関数を定義します。
custom_probes ファイルには、引数を必要とするプローブおよび比較関数を定義できます。rules ファイル内で対応するカスタムプローブキーワードを使用する場合、このキーワードの後に続く引数は順番に ($1、$2 などとして) 解釈されます。
rules ファイル内で対応するカスタムルールキーワードを使用する場合、引数はこのキーワードの後から解釈され、次の && または begin スクリプトのどちらか最初にきた方の前で解釈が終了します。
custom_probes ファイルを JumpStart ディレクトリに保存します (rules ファイルと同じ)。
root が rules ファイルを所有していて、そのアクセス権が 644 に設定されていることを確認します。
プローブ関数と比較関数の例は次のディレクトリにも入っています。
Solaris ソフトウェアがインストールされたシステムの /usr/sbin/install.d/chkprobe
Solaris 8 DVD または Solaris 8 SOFTWARE 1 of 2 CD 上の /Solaris_8/Tools/Boot/usr/sbin/install.d/chkprobe
次の 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 ファイルは、前の例で定義されているプローブキーワード (tcx) の使用方法を示しています。TCX グラフィックスカードがシステムにインストールされていて検出されると、profile_tcx が実行されます。そうでない場合は、profile が実行されます。
プローブキーワードは、rules ファイルの先頭または先頭近くに指定してください。これは、そのプローブキーワードに依存する可能性のあるほかのルールキーワードよりも前に読み取られて実行されるようにするためです。
probe tcx tcx tcx - profile_tcx - any any - profile - |
プロファイル、rules、および custom_probes ファイルを使用するには、これらのファイルの設定が正しいかどうかを check スクリプトを実行して検査する必要があります。すべてのプロファイル、ルール、およびプローブ関数と比較関数が正しく設定されている場合は、rules.ok ファイルと custom_probes.ok ファイルが作成されます。表 25–1 は、check スクリプトの実行内容を説明しています。
表 25–1 check スクリプトを使用した場合の動作
check スクリプトが JumpStart ディレクトリにあることを確認します。
check スクリプトは、Solaris 8 DVD または Solaris 8 SOFTWARE 1 of 2 CD の Solaris_8/Misc/jumpstart_sample ディレクトリにあります。
check スクリプトを実行して、rules ファイルおよび custom_probes ファイルの妥当性を検査します。
$ ./check [[-p path -r file_name]] |
使用しているシステムの check スクリプトではなく、プラットフォームの Solaris 8 ソフトウェアイメージの check スクリプトを使用して、custom_probes ファイルを妥当性検査します。path は、ローカルディスクか 、あるいはマウントされた Solaris 8 DVD または Solaris 8 SOFTWARE 1 of 2 CD 上のイメージです。 Solaris ソフトウェアの旧バージョンが動作しているシステムでは、最新バージョンの check スクリプトを実行するためにこのオプションを使用します。 |
|
custom_probes 以外のファイル名を指定します。-r オプションを使用することで、一連の関数を custom_probes ファイル内にまとめる前にそれらの妥当性検査を実施できます。 |
check スクリプトを実行すると、rules ファイルおよび custom_probes ファイルと各プロファイルの妥当性が表示されます。エラーが検出されないと、“The custom JumpStart configuration is ok”と表示され、JumpStart ディレクトリ内に rules.ok ファイルと custom_probes.ok ファイルが作成されます。
実行可能な場合は、手順 5 へ進みます。
実行可能でない場合は、次のコマンドを入力します。
chmod +x custom_probes
root が custom_probes.ok ファイルを所有し、そのアクセス権が 644 に設定されていることを確認してください。