BigAdmin System Administration Portal
SPARC プラットフォームおよび ZFS 用 Solaris 10 OS による JumpStart の設定
Print-friendly VersionPrint-friendly Version
この記事は、BigAdmin ユーザーの投稿です。 Sun Microsystems では、読みやすくするために若干の編集を行なった箇所もありますが、技術的な正確さについては見直していません。 間違いを見つけた場合や記事にコメントする場合は、投稿者に連絡するか、記事の末尾にある「コメント:」フィールドを使用してください。 コミュニティーの投稿は、Sun の商標ガイドラインに従っていない場合があります。 Sun の商標については、http://www.sun.com/suntrademarks/ を参照してください。
 
 

SPARC プラットフォームおよび ZFS 用 Solaris 10 OS による JumpStart の設定

Lucas Williams、2008 年 1 月

はじめに

ここでの説明では、ZFS を利用する SPARC プラットフォーム向け Solaris 10 Operating System を実行する 1 台の Sun Enterprise 3500 サーバーと、1 台のクライアントマシン (Sun Netra X1 サーバー) を使用しました。私の会社が準備中だったプロジェクトでは、クライアントに Solaris 10 OS をインストールする必要がありました。

この記事に示されている内容が、同様の作業が必要な皆さんに役立つと期待しています。

注: ここでは Solaris 10 08/07 リリースを使用しましたが、03/05 までの以前のバージョンでも動作します。

目次

この記事では、次のトピックについて説明します。

前提条件

ルートまたは別のシステム管理者としてログインしていることを確認してください。

また、起動サーバーを DHCP サーバーにすることをお勧めします。ただし、私のマシンは DHCP を別のサーバーから取得し、サーバーには静的な IP を設定しています。

さらに、tftp および nfs サービスを実行する必要があります。Solaris 10 OS をサーバーにインストールしたときに、私は最初から NFS を有効にしましたが、tftp のサービスを作成する必要がありました。幸いにも、この作業はほとんど設定が終わっているので、とても簡単です。必要な作業は、次のような簡単な変更です。

1. inetd.conf ファイルを編集します。vi に慣れている場合は、それを使用してください。そうでない場合は、別のテキストエディタを使用します。私のマシンにはモニターもキーボードも接続されていなかったため、SSH 端末から次のコマンドを実行しました。

# cd /etc
# vi inetd.conf

2. ファイルの末尾までスクロールし、次のような行を見つけます。

# TFTPD - tftp server (primarily used for booting)
# tftp dgram  udp6  wait root  /usr/sbin/in.tftpd  in.tftpd -s
/tftpboot

3. 次のように最後の行のコメントを解除し、ドキュメントを保存します。

tftp  dgram  udp6  wait root /usr/sbin/in.tftpd  in.tftpd -s
/tftpboot

4. :wq と入力し、ファイルを保存して vi を終了します。

5. inetconv を実行し、サービス管理機能 (Service Management Facility、SMF) にサービスを追加します。

# inetconv

6. 次に、svcadm を実行してサービスを有効にします。これで準備完了です。

# svcadm enable tftpd

続いて、ZFS ストレージプールを設定し、ファイルをコピーして構成ファイルを設定します。

ZFS ストレージプールの設定

Solaris JumpStart サーバーに新しいプールを作成します。

# zpool create install c1t7d0

私の環境ではサーバーに使用されていない予備のディスクがあったので、これを Solaris JumpStart サーバープールにしました。そのあと共有を設定します。そのあと共有を作成します。

# zfs create install/config
# zfs create install/boot
# zfs set sharenfs=ro,anon=0 install
# zfs set sharenfs=ro,anon=0 install/config
# zfs set sharenfs=ro,anon=0 install/boot

最後に、すべてのディレクトリが存在し、正しく共有されていることを確認します。

# cd /install
# ls -l
drwxr-xr-x   4 root     sys       5 Jan  8 10:25 boot
drwxr-xr-x   2 root     sys       9 Jan  8 10:16 config
#
# share
-               /install   ro,anon=0   ""
-               /install/config   ro,anon=0   ""
-               /install/boot   ro,anon=0   ""

ファイルのコピー

次に、Solaris 10 HW807 SPARC の 1 枚目の CD を、Sun Enterprise 3500 サーバーの CD-ROM ドライブに挿入します。CD の cdrom ディレクトリに移動し、setup_install_server スクリプトを実行します。

# cd /cdrom/cdrom0/s0/Solaris_10/Tools
# ./setup_install_server /install

スクリプトが実行され、必要なファイルが /install ディレクトリにコピーされます。コピーが完了したら、ルートディレクトリに移動して CD を取り出します。

# cd /
# eject cdrom

次に、2 枚目の CD を CD-ROM ドライブに挿入します。Tools ディレクトリに移動し、add_to_install_server スクリプトを実行します。

# cd /cdrom/cdrom0/Solaris_10/Tools
# ./add_to_install_server /install

同様の手順を繰り返し、5 枚の OS CD と言語 CD のすべてのファイルを /install ディレクトリにコピーします。

もう一度 Disc 1 を Sun Enterprise 3500 サーバーの CD-ROM ドライブに挿入し、Misc ディレクトリに移動します。check スクリプトをコピーします。このスクリプトは、あとの手順で作成する profile ファイルおよび rules ファイルの検証に使用します。

# cd /cdrom/cdrom0/s0/Solaris_10/Misc/jumpstart_sample
# cp check /install/config
# cd /install/config

構成ファイルの設定

ここでは、Solaris JumpStart サーバーを準備して実行するためのファイルを実際に作成します。

ディスクからサンプルをコピーして、必要に応じて変更できます。私はシステムの使用目的がわかっていたので、独自のファイルを作成し、check スクリプトを実行してファイルが正しく機能することを確認し、rules.ok ファイルを作成しました。

最初に作成するファイルは sysidcfg です。このファイルは、最初のブート後のクライアントの設定内容を、クライアントに指示します。このファイルに情報を追加しない場合、システムは要求された情報をすべて提供するように要求します。私は、vi を使用して /install/config に次のファイルを作成しました。

# vi sysidcfg
system_locale=en_US.ISO8859-1
timezone=US/Pacific
timeserver=localhost
terminal=vt100
name_service=NONE
security_policy=NONE
root_password=<encrypted password from /etc/shadow>
network_interface=dmfe0 {hostname=<hostname of client>
                         netmask=<your network's netmask>
                         protocol_ipv6=no
                         default_route=<your gateway>}

:wq

次に、rules ファイルを設定します。設定するサーバーが 1 つだけだったので、このファイルの設定はとても簡単でした。rules ファイルを利用すると、さまざま作業を実行できます。Solaris CD に含まれているサンプルの rules ファイルを調べると、何ができるか確認できます。ここでは次のように作業しました。

# vi rules
hostname <hostname of client> - profile -

:wq

begin スクリプトと finish スクリプトを使用しない場合は、上のコードのように 2 つの「-」の記号が必要です。これらのスクリプトを使用する場合は、「-」の代わりにスクリプトの名前を指定します。

クライアントをブートする前に、chmod 755 を使用してスクリプトのアクセス権を変更してください。これについての詳細は、Solaris CD の /Solaris_10/Misc/jumpstart_samples にあるサンプルの rules スクリプトを参照してください。

続いて、rules ファイルに指定したファイル名を使用して、プロファイル ファイルを作成する必要があります。このように、さまざまな設定が相互に参照されています。プロファイルファイルの名前には、rules ファイルで指定した名前を使用する必要があります。私は rules ファイルでファイル名を profile と指定したので、ファイル名は profile となります。profile ファイルでは、クライアントのパーティションサイズ、インストールの種類、およびクライアントの種類に関する設定を指定します。

私は vi を使用してファイルを作成していますが、必要に応じて編集可能なサンプルが Solaris CD に用意されています。重要なことは、正しいインストールの種類を把握することです。

cluster オプションは、ソフトウェアグループに従ってインストールの種類を指定します。次の表に利用可能な値を示します。

表 1: ソフトウェアグループとグループ名の値

Reduced Network サポート
SUNWCrnet
コアシステムサポート
SUNWCreq
エンドユーザーシステムサポート
SUNWCuser
開発者システムサポート
SUNWCprog
全体ディストリビューション
SUNWCall
全体ディストリビューションと OEM サポート
SUNWCXall

ここでは、次のように作業しました。

# vi profile
install_type      initial_install
cluster           SUNWCXall
partitioning      explicit
filesys           c0t0d0s0 14000 /
filesys           c0t0d0s1 2048 /var
filesys           c0t0d0s3 1024 swap
filesys           c0t0d0s7 19500 /export/home
system_type       standalone

:wq

次に、ファイルに間違いがないことを確認します。この作業は、check を実行するだけです。

# ./check

間違いがなければ、/install/config ディレクトリに rules.ok というファイルが作成されています。

# ls -l
-rwxr-xr-x   1 root     root   59701 Jan  8 10:16 check
-rw-r--r--   1 root     root     232 Jan  8 10:14 profile
-rw-r--r--   1 root     root      32 Jan  8 10:15 rules
-rw-r--r--   1 root     root      57 Jan  8 10:16 rules.ok
-rw-r--r--   1 root     root     278 Jan  8 09:33 sysidcfg

サーバーを正しくブートするための設定

続いて、サーバーをブートする設定を実際に指定します。クライアントの MAC アドレスが必要です。MAC アドレスは、クライアントで ifconfig -a を実行して取得するか、openboot プロンプトから取得します。

取得した MAC アドレスは、/etc/ethers ファイルに追加します。このファイルがない場合は、/etc ディレクトリに移動してファイルを作成します。

# cd /etc
# vi ethers
0a:3b:ba:f5:d1:e6 <client hostname>

:wq

次に、クライアントを /etc/hosts ファイルに追加します。

# vi hosts
<ip.address.for.client> <client hostname>

:wq

ここで、起動サーバーを作成する必要があります。Solaris 10 OS の Disc 1 を CD-ROM ドライブに挿入し、setup_install_server をもう一度実行します。今回は -b オプションと /install/boot ディレクトリを指定します。

# cd /cdrom/cdrom0/s0/Solaris_10/Tools
# ./setup_install_server -b /install/boot

作業が終わったら、CD を取り出します。

# cd /
# eject cdrom

クライアントの設定

続いて、クライアントを設定します。私は次のコマンドを実行しました。これらのコマンドは、CD から /install ディレクトリにコピーしたファイルを使用して実行しています。

: 次のコマンドを、CD ではなくインストールイメージから実行することが重要です。コマンドを実行した場所によって、クライアントがブートイメージを探す場所が決定されるからです。CD からインストールすると、クライアントは CD でブートイメージを探します。NFS を使用してサーバーの CD-ROM ドライブを共有していなければ、コマンドは失敗します。

# cd /install/Solaris_10/Tools
# ./add_install_client -e 0a:3b:ba:f5:d1:e6 -s
<server hostname>:/install -c
<server hostname>:/install/config -p
<server hostname>:/install/config <client hostname>
sun4u

前述のコマンドによって必要なファイルがすべて作成されます。したがって、クライアントはブートし、Solaris OS のインストールを開始するために必要なすべての情報を見つけられます。フラグの意味を次に示します。

  • -e は、クライアントの MAC アドレスを指定します。
  • -s は、サーバーのインストールファイルの場所を指定します。
  • -c は、Solaris JumpStart の構成場所を指定します。
  • -p は、sysidcfc ファイルの場所を指定します。
  • sun4u は、クライアントのアーキテクチャーを指定します。

クライアントのブート

これで、クライアントをブートしてサーバーを検出させる準備ができました。

: 私の Sun Netra X1 サーバーでは、「#」を入力し、LOM> プロンプトで break と入力することで、Lights Out Management (LOM) コンソールにアクセスできました。OpenBoot プロンプトが表示されるように、必要な操作を実行してください。

クライアントに OpenBoot の OK プロンプトが表示されたら、次のコマンドを実行します。

ok> boot net - install

このコマンドを実行すると、クライアントがサーバーに接続されます。続いて、OS がダウンロードされ、インストールが開始されます。私が行なった作業は、検出されたデフォルトの IPv4 設定を使用するように指示することだけで、リブートやコンソールモードへの移行を含め、残りの作業が実行されました。

執筆者紹介

Lucas Williams 氏は、UNIX および Microsoft Windows のシステム管理者を 15 年以上務めています。 Linux、Solaris OS (release 2.6 ~ 10)、Novell Networking、および Microsoft Windows NT 3.51 から Microsoft Windows Server 2008 までさまざまなシステムを経験しています。Lucas 氏は、さまざまなシステムを簡単に管理するためのスクリプトを作成したり、新しい技術を運用環境に配備する前のベータテストを行なっています。現在は、運用環境にサーバーを配備するために仮想化が使用できるよう、さまざまな方法で研究しています。

The information and links on this page have been provided by a BigAdmin user. The submitter is solely responsible for such information and links. Sun is not responsible for the availability of external sites or resources, and does not endorse and is not responsible or liable for any content, advertising, products, or other materials on or available from such sites or resources. Sun will not be responsible or liable, directly or indirectly, for any actual or alleged damage or loss caused by or in connection with use of or reliance on the information posted here, or goods or services available on or through any external site or resource.
 
 
BigAdmin