Solaris 10 10/08 インストールガイド (ネットワークインストール)

Solaris インストールパラメータ用の DHCP オプションとマクロの作成

インストールサーバー上で add_install_client -d スクリプトを使用してクライアントを追加すると、そのスクリプトは DHCP 構成情報を標準出力にレポートします。この情報は、ネットワークインストール情報をクライアントに伝えるために必要なオプションとマクロを作成する際に使用できます。

DHCP サービス内のオプションおよびマクロをカスタマイズして、次の種類のインストールを実行できます。

DHCP サーバーを使用してネットワークインストールを行うようにクライアントを設定する方法については、次の手順を参照してください。

DHCP オプションおよびマクロの値

ネットワークから DHCP クライアントに対してインストールを行うには、ベンダーカテゴリオプションを作成して、Solaris OS をインストールするために必要な情報を伝える必要があります。次の表では、DHCP クライアントのインストールに使用できる一般的な DHCP オプションを説明します。

DHCP オプションの詳細は、『Solaris のシステム管理 (IP サービス)』「DHCP のオプション」を参照してください。

表 3–3 標準的な DHCP オプションの値

オプション名 

コード 

データ型 

データの単位数 (Granularity) 

最大値 

説明 

BootFile

なし 

ASCII 

クライアントのブートファイルへのパス 

BootSrvA

なし 

IP アドレス 

ブートサーバーの IP アドレス 

DNSdmain

15 

ASCII 

DNS ドメイン名 

DNSserv

IP アドレス 

DNS ネームサーバーの一覧 

NISdmain

40 

ASCII 

NIS ドメイン名 

NISservs

41 

IP アドレス 

NIS サーバーの IP アドレス 

NIS+dom

64 

ASCII 

NIS+ ドメイン名 

NIS+serv

65 

IP アドレス 

NIS+ サーバーの IP アドレス 

Router

IP アドレス 

ネットワークルーターの IP アドレス 

表 3–4 Solaris クライアント用にベンダーカテゴリオプションを作成するための値

名前 

コード 

データ型 

データの単位数 (Granularity) 

最大値 

ベンダークライアントクラス 

説明 

次のベンダーカテゴリオプションは、クライアントへの Solaris のインストールを DHCP サーバーでサポートするために必須のものです。これらのオプションは、Solaris クライアントの起動スクリプトで使用されます。


注 –

ここに示されているベンダークライアントクラスは単なる例です。ネットワークからインストールする必要がある実際のクライアントについて、クライアントクラスを指定する必要があります。


SrootIP4

IP アドレス 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

ルートサーバーの IP アドレス 

SrootNM

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

ルートサーバーのホスト名 

SrootPTH

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

ルートサーバーにあるクライアントのルートディレクトリへのパス 

SinstIP4

10 

IP アドレス 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

JumpStart インストールサーバーの IP アドレス 

SinstNM

11 

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

インストールサーバーのホスト名 

SinstPTH

12 

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

インストールサーバーにあるインストールイメージへのパス 

次のオプションは、クライアントの起動スクリプトで使用できますが、必須ではありません。


注 –

ここに示されているベンダークライアントクラスは単なる例です。ネットワークからインストールする必要がある実際のクライアントについて、クライアントクラスを指定する必要があります。


SrootOpt

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

クライアントのルートファイルシステム用の NFS マウントオプション 

SbootFIL

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

クライアントのブートファイルへのパス 

SbootRS

数値 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

カーネルを読み込む際にスタンドアロンのブートプログラムが使用する NFS 読み込みサイズ 

SsysidCF

13 

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

server:/path という形式での、sysidcfg ファイルへのパス

SjumpsCF

14 

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

server:/path という形式での、JumpStart 構成ファイルへのパス

SbootURI

16 

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

スタンドアロンのブートファイルへのパスまたは WAN ブートファイルへのパス。スタンドアロンのブートファイルの場合は、次の形式を使用します。 

tftp://inetboot.sun4u

WAN ブートファイルの場合は、次の形式を使用します。 

http://host.domain/path-to-file

このオプションを使用すると、BootFilesiaddr の設定を無効にし、スタンドアロンのブートファイルを検出させることができます。サポートされているプロトコルは、 tftp (inetboot) および http (wanboot) です。たとえば、次の形式を使用します。tftp://inetboot.sun4u

SHTTPproxy

17 

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

ネットワーク上で使用されているプロキシサーバーの IP アドレスとポート番号。このオプションが必要なのは、クライアントが WAN を介してブートされる場合で、ローカルネットワークでプロキシサーバーが使用されているときのみです。たとえば、次の形式を使用します。 198.162.10.5:8080

次のオプションは、Solaris クライアントの起動スクリプトで現在は使用されていません。起動スクリプトを編集する場合だけ、これらのオプションを使用できます。


注 –

ここに示されているベンダークライアントクラスは単なる例です。ネットワークからインストールする必要がある実際のクライアントについて、クライアントクラスを指定する必要があります。


SswapIP4

IP アドレス 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

スワップサーバーの IP アドレス 

SswapPTH

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

スワップサーバーにあるクライアントのスワップファイルへのパス 

Stz

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

クライアントのタイムゾーン 

Sterm

15 

ASCII テキスト 

SUNW.Sun-Blade-1000、SUNW.Sun-Fire-880、SUNW.i86pc

端末タイプ  

オプションがすでに作成されていれば、これらのオプションを含んだマクロを作成することができます。次に、クライアントに対する Solaris のインストールをサポートするために作成できるマクロの例を示します。

表 3–5 ネットワークインストールクライアントをサポートするマクロの例

マクロ名 

含まれるオプションとマクロ 

Solaris

SrootIP4、SrootNM、SinstIP4、SinstNM

sparc

SrootPTH、SinstPTH

sun4u

Solaris マクロと sparc マクロ

sun4v

Solaris マクロと sparc マクロ

i86pc

Solaris マクロ、SrootPTH、SinstPTH、SbootFIL

SUNW.i86pc

i86pc マクロ


注 –

SUNW.i86pc ベンダークライアントクラスは、Solaris 10 3/05 リリースおよびその互換バージョンに対してのみ有効です。


SUNW.Sun-Blade-1000

sun4u マクロ、SbootFIL

SUNW.Sun-Fire-880

sun4u マクロ、SbootFIL

PXEClient:Arch:00000:UNDI:002001

BootSrvABootFile

xxx.xxx.xxx.xxx ネットワークアドレスマクロ

BootSrvA オプションは既存のネットワークアドレスマクロに追加できます。BootSrvA の値は tftboot サーバーを示す必要があります。

01client-MAC-address クライアント固有のマクロ (たとえば、010007E9044ABF)

BootSrvABootFile

上記の表に示されているマクロ名は、ネットワークからインストールする必要のあるクライアントのベンダークライアントクラスと一致します。これらの名前は、ネットワーク上にあるクライアントの例です。クライアントのベンダークライアントクラスを調べる方法については、『Solaris のシステム管理 (IP サービス)』「DHCP オプションを使用した作業 (作業マップ)」を参照してください。

これらのオプションとマクロは、次の方法で作成できます。

特定のクライアントに提供されているベンダーオプションは、オプションコードや長さの情報も含めて、合計のサイズが 255 バイトを超えてはいけません。これは、現在の Solaris DHCP プロトコルの実装による制限です。一般に、渡すベンダー情報は、必要最小限に留めるべきです。さらに、パス名を必要とするオプションでは、短いパス名を使用すべきです。長いパス名に対してシンボリックリンクを作成すると、短いリンク名を使用できます。

DHCP マネージャを使用したインストールオプションとマクロの作成

DHCP マネージャーを使用して、表 3–4 に一覧表示されているオプションおよび表 3–5 に一覧表示されているマクロを作成できます。

ProcedureSolaris のインストールをサポートするオプションを作成する方法 (DHCP マネージャ)

始める前に

インストール用の DHCP マクロを作成する前に、次の作業を実行してください。

  1. DHCP サーバーシステムでスーパーユーザーになるか、同等の役割を引き受けます。

  2. DHCP マネージャを起動します。


    # /usr/sadm/admin/bin/dhcpmgr &
    

    「DHCP マネージャ (DHCP Manager)」ウィンドウが表示されます。

  3. DHCP マネージャで「オプション (Options)」を選択します。

  4. 「編集 (Edit)」メニューから「作成 (Create)」を選択します。

    「オプションの作成 (Create Option)」パネルが開きます。

  5. 最初のオプションのオプション名を入力し、そのオプションに値を入力します。

    add_install_client コマンドの出力結果、表 3–3、および表 3–4 を使用して、作成するオプションの名前と値を調べます。ベンダークライアントクラスは推奨値に過ぎないことに注意してください。DHCP サービスから Solaris インストールパラメータを取得する必要がある実際のクライアントのタイプを示すクラスを作成する必要があります。クライアントのベンダークライアントクラスを調べる方法については、『Solaris のシステム管理 (IP サービス)』「DHCP オプションを使用した作業 (作業マップ)」を参照してください。

  6. すべての値を入力したら、「了解 (OK)」をクリックします。

  7. 「オプション (Options)」タブで、今作成したオプションを選択します。

  8. 「編集 (Edit)」メニューから「複製 (Duplicate)」を選択します。

    「オプションの複製 (Duplicate Option)」パネルが開きます。

  9. 別のオプションの名前を入力し、その他の値を適宜変更します。

    コード、データ型、データの単位数、最大値は通常は変更する必要があります。これらの値については、表 3–3 および表 3–4 を参照してください。

  10. すべてのオプションを作成するまで、手順 7 から手順 9 までを繰り返します。

    次の手順の説明に従って、ネットワークインストールクライアントにオプションを渡すマクロを作成できます。


    注 –

    これらのオプションはすでに Solaris クライアントの /etc/dhcp/inittab ファイルに含まれているので、わざわざ追加する必要はありません。


ProcedureSolaris のインストールをサポートするマクロを作成する方法 (DHCP マネージャ)

始める前に

インストール用の DHCP マクロを作成する前に、次の作業を実行してください。

  1. DHCP マネージャで「マクロ (Macros)」を選択します。

  2. 「編集 (Edit)」メニューから「作成 (Create)」を選択します。

    「マクロの作成 (Create Macro)」パネルが開きます。

  3. マクロの名前を入力します。

    使用できるマクロ名については、表 3–5 を参照してください。

  4. 「選択 (Select)」ボタンをクリックします。

    「オプションの選択 (Select Option)」パネルが開きます。

  5. 「カテゴリ (Category)」リストで「ベンダー (Vendor)」を選択します。

    作成したベンダーオプションがリストされます。

  6. マクロに追加するオプションを選択して、「了解 (OK)」をクリックします。

  7. オプションの値を入力します。

    オプションのデータ型については、表 3–3 および表 3–4 を参照してください。add_install_client -d の報告も参照してください。

  8. すべてのオプションを追加するまで、手順 6 から手順 7 までを繰り返します。

    別のマクロを追加するには、オプション名に Include と入力し、オプション値にそのマクロ名を入力します。

  9. マクロが完成したら、「了解 (OK)」をクリックします。

インストールの続行

DHCP を使ってネットワーク経由のインストールを行うには、インストールサーバーを設定し、システムをインストールクライアントとして追加する必要があります。詳細については、第 4 章ネットワークからのインストール (概要)を参照してください。

DHCP を使って WAN ブートインストールを行うには、追加の作業を行う必要があります。詳細については、第 10 章WAN ブート (概要)を参照してください。

DHCP を使ってカスタム JumpStart インストールを行うには、プロファイルと rules.ok ファイルを作成する必要があります。詳細については、『Solaris 10 10/08 インストールガイド (カスタム JumpStart/ 上級編)』の第 2 章「カスタム JumpStart (概要)」を参照してください。

参照

DHCP の詳細は、『Solaris のシステム管理 (IP サービス)』のパート III「DHCP」を参照してください。

dhtadm を使用してオプションとマクロを作成するスクリプトの作成

例 3–1 の例を応用して Korn シェルスクリプトを作成し、表 3–3 および表 3–4 に一覧表示されているすべてのオプションと、いくつかの便利なマクロを作成できます。引用符に囲まれたすべての IP アドレスと値を、実際のネットワークの IP アドレス、サーバー名、およびパスに変更してください。また、Vendor= キーを編集して、使用するクライアントのクラスを示す必要もあります。add_install_client -d の情報を使って、スクリプトを変更するために必要なデータを取得します。


例 3–1 ネットワークインストールをサポートするスクリプトの例

# Load the Solaris vendor specific options. We'll start out supporting 
# the Sun-Blade-1000, Sun-Fire-880, and i86 platforms. Note that the 
# SUNW.i86pc option only applies for the Solaris 10 3/05 release. 
# Changing -A to -M would replace the current values, rather than add them.
dhtadm -A -s SrootOpt -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,1,ASCII,1,0'
dhtadm -A -s SrootIP4 -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,2,IP,1,1'
dhtadm -A -s SrootNM -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,3,ASCII,1,0'
dhtadm -A -s SrootPTH -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,4,ASCII,1,0'
dhtadm -A -s SswapIP4 -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,5,IP,1,0'
dhtadm -A -s SswapPTH -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,6,ASCII,1,0'
dhtadm -A -s SbootFIL -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,7,ASCII,1,0'
dhtadm -A -s Stz -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,8,ASCII,1,0'
dhtadm -A -s SbootRS -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,9,NUMBER,2,1'
dhtadm -A -s SinstIP4 -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,10,IP,1,1'
dhtadm -A -s SinstNM -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,11,ASCII,1,0'
dhtadm -A -s SinstPTH -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,12,ASCII,1,0'
dhtadm -A -s SsysidCF -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,13,ASCII,1,0'
dhtadm -A -s SjumpsCF -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,14,ASCII,1,0'
dhtadm -A -s Sterm -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,15,ASCII,1,0'
dhtadm -A -s SbootURI -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,16,ASCII,1,0'
dhtadm -A -s SHTTPproxy -d \
'Vendor=SUNW.Sun-Blade-1000 SUNW.Sun-Fire-880 SUNW.i86pc,17,ASCII,1,0'
# Load some useful Macro definitions.
# Define all Solaris-generic options under this macro named Solaris.
dhtadm -A -m Solaris -d \
':SrootIP4=10.21.0.2:SrootNM="blue2":SinstIP4=10.21.0.2:SinstNM="red5":'
# Define all sparc-platform specific options under this macro named sparc.
dhtadm -A -m sparc -d \
':SrootPTH="/export/sparc/root":SinstPTH="/export/sparc/install":'
# Define all sun4u architecture-specific options under this macro named sun4u. 
#  (Includes Solaris and sparc macros.)
dhtadm -A -m sun4u -d ':Include=Solaris:Include=sparc:'
# Solaris on IA32-platform-specific parameters are under this macro named i86pc.
# Note that this macro applies only for the Solaris 10 3/05 release.
dhtadm -A -m i86pc -d \
':Include=Solaris:SrootPTH="/export/i86pc/root":SinstPTH="/export/i86pc/install"\
:SbootFIL="/platform/i86pc/kernel/unix":'
# Solaris on IA32 machines are identified by the "SUNW.i86pc" class. All
# clients identifying themselves as members of this class will see these
# parameters in the macro called SUNW.i86pc, which includes the i86pc macro.
# Note that this class only applies for the Solaris 10 3/05 release.
dhtadm -A -m SUNW.i86pc -d ':Include=i86pc:'
# Sun-Blade-1000 platforms identify themselves as part of the 
# "SUNW.Sun-Blade-1000" class.
# All clients identifying themselves as members of this class
#  will see these parameters.
dhtadm -A -m SUNW.Sun-Blade-1000 -d \
':SbootFIL="/platform/sun4u/kernel/sparcv9/unix":\
Include=sun4u:'
# Sun-Fire-880 platforms identify themselves as part of the "SUNW.Sun-Fire-880" class.
# All clients identifying themselves as members of this class will see these parameters.
dhtadm -A -m SUNW.Sun-Fire-880 -d \
':SbootFIL="/platform/sun4u/kernel/sparcv9/unix":Include=sun4u:'
# Add our boot server IP to each of the network macros for our topology served by our
# DHCP server. Our boot server happens to be the same machine running our DHCP server.
dhtadm -M -m 10.20.64.64 -e BootSrvA=10.21.0.2
dhtadm -M -m 10.20.64.0 -e BootSrvA=10.21.0.2
dhtadm -M -m 10.20.64.128 -e BootSrvA=10.21.0.2
dhtadm -M -m 10.21.0.0 -e BootSrvA=10.21.0.2
dhtadm -M -m 10.22.0.0	-e BootSrvA=10.21.0.2
# Make sure we return host names to our clients.
dhtadm -M -m DHCP-servername -e Hostname=_NULL_VALUE_
# Create a macro for PXE clients that want to boot from our boot server.
# Note that this macro applies for the Solaris 10 3/05 release.
dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d \
:BootFile=nbp.i86pc:BootSrvA=10.21.0.2:
# Create a macro for PXE clients that want to boot from our boot server.
# Note that this macro applies for the Solaris 10 2/06 release.
dhtadm -A -m PXEClient:Arch:00000:UNDI:002001 -d \
:BootFile=i86pc:BootSrvA=10.21.0.2:
# Create a macro for the x86 based client with the Ethernet address 00:07:e9:04:4a:bf 
# to install from the network by using PXE.
dhtadm -A -m 010007E9044ABF -d :BootFile=010007E9044ABF:BootSrvA=10.21.0.2:
# The client with this MAC address is a diskless client. Override the root settings
# which at the network scope setup for Install with our client's root directory.
dhtadm -A -m 0800201AC25E -d \
':SrootIP4=10.23.128.2:SrootNM="orange-svr-2":SrootPTH="/export/root/10.23.128.12":'

スーパーユーザーになり、dhtadm をバッチモードで実行します。オプションとマクロを dhcptab に追加するためのスクリプトの名前を指定します。たとえば、スクリプトの名前が netinstalloptions の場合、次のコマンドを入力します。


# dhtadm -B netinstalloptions

Vendor= 文字列に指定されているベンダークライアントクラスを持つクライアントが、DHCP を使ってネットワーク経由でインストールできるようになります。

dhtadm コマンドの使用方法の詳細については、dhtadm(1M) のマニュアルページを参照してください。dhcptab ファイルの詳細は、dhcptab(4) のマニュアルページを参照してください。