BigAdmin System Administration Portal
x86/x64 プラットフォーム用 Solaris 10 OS での Solaris JumpStart の使用法
Print-friendly VersionPrint-friendly Version

x86/x64 プラットフォーム用 Solaris 10 OS での Solaris JumpStart の使用法

Craig Winter、Dale Layfield 共著、2007 年 3 月


要約

Sun Microsystems の Solaris JumpStart 技術は、ネットワーク上の複数のノードで Solaris Operating System のインストールやその他の関連ソフトウェアのインストールを自動化するために使用されます。

x86/x64 プラットフォーム用 Solaris 10 OS での Solaris JumpStart ソフトウェアの使用は、SPARC プラットフォーム用 Solaris 10 OS の場合と基本的に同じです。ただし、正しく動作させるための処理がいくらか必要となります。

このドキュメントでは、Sun x86/x64 マシンで Solaris 10 OS の JumpStart サーバーを設定するために必要な手順と、2 台以上のクライアントに対する JumpStart の構成について説明します。

全般的な参考として、Sun オンラインドキュメントの「カスタム JumpStart の使用」を参照してください。


はじめに

この記事では、x86/x64 プラットフォーム用の Solaris 10 OS を使用して JumpStart サーバーを作成する方法を、手順を追って説明します。このバージョンの Solaris 10 OS は、サーバーで実行される OS としても、JumpStart インストールサーバー上の OS としても使用されます。AMD Opteron ベースおよび Intel プロセッサベースのどちらのマシンも、サーバーおよびクライアントとして使用され、それぞれに使用するプロセッサタイプについてもどちらが優先ということはありません。

手順では次の内容を説明します。

クライアントをネットワークからブートできるようにするには、Preboot Execution Environment (PXE) を有効にする必要があります。一部のクライアントでは、PXE を BIOS で有効にする必要があります。

クライアントのブートファイルの作成におけるバグは、「最終的なクリーンアップ」で説明しています。


Solaris JumpStart の手順

これから説明する手順では、x86/x64 プラットフォーム用 Solaris 10 OS を 2 つのクライアントにインストールする JumpStart インストールサーバーを設定します。

この演習では、JumpStart サーバーのノード名を stinger2、IP アドレスを 172.16.64.194 とします。デフォルトルーターの IP アドレスは 172.16.64.1 です。JumpStart サーバーを配置するネットワークアドレスは 172.16.64.0 です。

必要な場合は、Solaris 10 OS をダウンロードしてください。

1. JumpStart インストールサーバーの作成

a. サーバーにインストールディレクトリを作成します。

# mkdir -p /export/install

b. サーバーの DVD プレイヤーに、x86/x64 プラットフォーム用 Solaris 10 OS の DVD を挿入します。DVD の Solaris_10/Tools ディレクトリに移動し、setup_install_server コマンドを実行してインストールサーバーを作成します。Solaris ソフトウェアが新しく作成したディレクトリにコピーされます。引数として絶対パス名を指定します。

# cd /cdrom/cdrom0/Solaris_10/Tools
  # ./setup_install_server /export/install
  Verifying target directory...
  Calculating the required disk space for the Solaris_10 product
  \|/-\|/-
  Calculating space required for the installation boot image
  \|/-\|/-
  Copying the CD image to disk...
  \|/-\|/-
  Copying Install Boot Image hierarchy...
  \|/-\|/-
  Copying /boot x86 netboot hierarchy...
  \|/-\|/-
  Install Server setup complete
  #

c. install ディレクトリが正しく構成されたことを確認します。

  # du -sk /export/install

  3083278 /export/install

d. DVD を DVD プレイヤーから取り出します。

  # cd /;eject

クライアントの構成ファイルの作成

クライアントの構成ファイルは、カスタム JumpStart インストールを制御するために使用します。

a. ファイルを格納する構成ディレクトリを作成します。

  # mkdir /export/config

b. sysidcfg ファイルを作成します。

最初に作成するファイルは sysidcfg ファイルです。このファイルには正しい情報を適切にフォーマットする必要があります。フォーマットが正しくない場合、ファイルは無視され、JumpStart の自動インストールは中止されます。その後、デフォルトの Solaris の標準的な対話型インストールになります。

JumpStart クライアントは、OS のインストールが開始される前に sysidcfg という名前のファイルを探します。このファイルは、「sysidcfg」という名前にする必要があります。したがって、このファイルを複数作成する場合は、各 sysidcfg ファイルを別々のディレクトリに保存する必要があります。各クライアントで独自の sysidcfg を使用するか、複数のクライアントで同じ sysidcfg ファイルを使用することができます。sysidcfg ファイルは、add_install_client コマンドでクライアントに割り当てられます。2 つの sysidcfg ファイルを作成する場合は、次のようになります。

  # cd /export/config
  # mkdir sysidcfg1
  # cd sysidcfg1
  # vi sysidcfg

  system_locale=en_US.ISO8859-1
  timezone=US/Pacific
  timeserver=localhost
  terminal=vt100
  name_service=NONE
  security_policy=NONE
  root_password=<encrypted from /etc/shadow>
  network_interface=bge0 {hostname=client1
                          netmask=255.255.255.0
                          protocol_ipv6=no
                          default_route=172.16.64.1}

  :wq

  # cd ../
  # mkdir sysidcfg2
  # cd sysidcfg2
  # vi sysidcfg

  system_locale=en_US.ISO8859-1
  timezone=US/Pacific
  timeserver=localhost
  terminal=vt100
  name_service=NONE
  security_policy=NONE
  root_password=<encrypted from /etc/shadow>
  network_interface=bge0 {hostname=client2
                          netmask=255.255.255.0
                          protocol_ipv6=no
                          default_route=172.16.64.1}

  :wq

c. rules ファイルを作成します。

次に作成するファイルは rules ファイルです。これは、Solaris OS のインストール先となる各クライアントまたはクライアントグループのルールを含むテキストファイルです。rules ファイルの各行で、各クライアントまたはクライアントグループで使用する beginprofile、および finish ファイルを JumpStart に指示します。

rules ファイルは 1 つだけ作成します。必要な固有の構成の数に応じて、複数の行を記述できます。2 つの独立したクライアント用の情報を含む rules ファイルの内容を、次に示します。

  # cd /export/config
  # vi rules

  hostname client1 begin1 profile1 finish1
  hostname client2 begin2 profile2 finish2

  :wq

rules ファイルは、check スクリプトが rules.ok ファイルを作成するときに使用されますカスタム JumpStart インストールでは、rules.ok ファイルが正しく作成される必要があります。

d. begin ファイルを作成します。

begin ファイルは、Solaris OS のインストールを開始する前にクライアントで作業を実行するために使用される、ユーザー定義の Bourne シェルスクリプトです。一般的な作業には、派生プロファイルの作成や、アップグレード前のファイルのバックアップなどがあります。

必要に応じて、複数の begin ファイルを使用できます。2 つの begin ファイルを作成する場合は、次のようになります。

  # cd /export/config
  # vi begin1

  #!/bin/sh
  echo "Begin Script for JumpStart client1..."

  :wq

  # vi begin2

  #!/bin/sh
  echo "Begin Script for JumpStart client2..."

  :wq

  # chmod 755 begin*

クライアントでのインストール中、begin ファイルからの出力は /tmp/begin.log に書き込まれます。インストールの終了後、ログファイルは /var/sadm/system/logs/begin.log になります。

『Solaris 10 インストールガイド』の「カスタム JumpStart の環境変数」では、begin スクリプト内で使用できる変数を説明しています。

e. finish ファイルを作成します。

finish ファイルは、Solaris OS のインストール完了後にクライアントで作業を実行するために使用される、ユーザー定義の Bourne シェルスクリプトです。このスクリプトは一般的に、ファイルの追加、パッケージとパッチの追加、ルート環境のカスタマイズ、および追加ソフトウェアのインストールに使用します。

必要に応じて、複数の finish ファイルを使用できます。2 つの finish ファイルを作成する場合は、次のようになります。

  # cd /export/config
  # vi finish1

  #!/bin/sh
  echo "Finish Script for JumpStart client1..."
  echo "Get rid of the nfs prompt during the initial boot"
  touch /a/etc/.NFS4inst_state.domain

  :wq

  # vi finish2

  #!/bin/sh
  echo "Finish Script for JumpStart client2..."
  echo "Get rid of the nfs prompt during the initial boot"
  touch /a/etc/.NFS4inst_state.domain

  :wq

  # chmod 755 finish*

Solaris インストールプログラムは、クライアントシステムのファイルシステムを /a にマウントします。finish スクリプトは、/a に対するファイルの追加、変更、または削除に使用できます。これらのファイルシステムは、最初のシステムリブートが実行されるまで /a にマウントされたままになります。

JumpStart ディレクトリ (/export/install) は、SI_CONFIG_DIR 変数によって指定されるディレクトリにマウントされます。デフォルトでは、ディレクトリは /tmp/install_config に設定されます。ファイルは、finish スクリプトで実行されたコマンドによって、JumpStart ディレクトリからクライアントにコピーされます。インストールされたシステムに追加されるファイルは、JumpStart ディレクトリに置かれ、続いてクライアントからアクセスできるようになります。

finish スクリプトの次の行では、クライアントの新しくインストールしたファイルシステム階層にファイルをコピーしています。

  cp /tmp/install_config/<file_name> /a/<path_name>/

f. profile ファイルを作成します。

profile ファイルは、クライアントでの Solaris OS のインストール方法を定義するテキストファイルです。

複数の profile ファイルを作成できます。複数のクライアントで同じ profile ファイルを使用したり、各クライアントで独自の profile ファイルを使用することができます。2 つの profile ファイルを作成する場合は、次のようになります。

  # cd /export/config
  # vi profile1

  # install_type MUST be first
  install_type      initial_install

  # start with the minimal required number of packages
  cluster           SUNWCXall
  cluster           SUNWCapache delete
  cluster           SUNWCpcmc   delete
  cluster           SUNWCpcmcx  delete
  cluster           SUNWCthai   delete
  cluster           SUNWClp     delete
  cluster           SUNWCnis    delete
  cluster           SUNWCppp    delete

  # format the entire disk for Solaris
  fdisk   all   solaris all

  # define how the disk is partitioned
  partitioning      explicit
  filesys           rootdisk.s0 6144  /
  filesys           rootdisk.s1 1024  swap
  filesys           rootdisk.s7 free  /state/partition1

  # install systems as standalone
  system_type standalone

  # specify patches to install
  patch 119281-06 nfs 172.16.64.194:/export/patches

  # specify packages to install
  package SPROcc add nfs 172.16.64.194:/export/packages

  :wq

  # vi profile2

  # install_type MUST be first
  install_type      initial_install

  # start with the minimal required number of packages
  cluster           SUNWCXall
  cluster           SUNWCapache delete
  cluster           SUNWCpcmc   delete
  cluster           SUNWCpcmcx  delete
  cluster           SUNWCthai   delete
  cluster           SUNWClp     delete
  cluster           SUNWCnis    delete
  cluster           SUNWCppp    delete

  # format the entire disk for Solaris
  fdisk   all   solaris all

  # define how the disk is partitioned
  partitioning      explicit
  filesys           rootdisk.s0 6144  /
  filesys           rootdisk.s1 4096  swap
  filesys           rootdisk.s7 free  /state/partition1

  # install systems as standalone
  system_type standalone

  # specify patches to install
  patch 119281-06 nfs 172.16.64.194:/export/patches

  # specify packages to install
  package SPROcc add nfs 172.16.64.194:/export/packages

  :wq

g. check スクリプトを作成します。

check スクリプトは、rules ファイルおよび profile ファイルが正しく設定されていることを検証するために使用します。まず次のように、check スクリプトをローカルディレクトリの /export/config にコピーします。

  # cd /export/config
  # cp /export/install/Solaris_10/Misc/jumpstart_sample/check .

h. check スクリプトを実行します。

  # ./check
  Validating rules...
  Validating profile profile1...
  Validating profile profile2...
  The custom JumpStart configuration is ok.

エラーがなければ、rules.ok ファイルが作成されます。このファイルは rules ファイルと同じですが、コメントと空行は削除されています。check スクリプトは rules.ok ファイルの末尾に次のコメントを追加します。

  # version=2 checksum=<num>

3. インストールディレクトリと構成ディレクトリの共有

dfstab を変更して、JumpStart ディレクトリを共有します。

a. /etc/dfs/dfstab ファイルを編集します。

  # vi /etc/dfs/dfstab

  #       Place share(1M) commands here for automatic execution
  #       on entering init state 3.
  #
  #       Issue the command 'svcadm enable network/nfs/server' to
  #       run the NFS daemon processes and the share commands, after
  #       adding the very first entry to this file.
  #
  #       share [-F fstype] [ -o options] [-d "<text>"] <pathname>
  #       [resource]
  #       for example,
  #       share  -F nfs  -o rw=engineering  -d "home dirs"  /export/home2

  share -F nfs -o ro,anon=0 /export/install
  share -F nfs -o ro,anon=0 /export/config
  share -F nfs -o ro,anon=0 /export/patches
  share -F nfs -o ro,anon=0 /export/packages

  :wq

b. NFS サーバーを起動します。

  # /etc/init.d/nfs.server start

c. ディレクトリを共有します。

  # shareall
  # share
  -               /export/install   ro,anon=0   ""
  -               /export/config   ro,anon=0   ""
  -               /export/patches   ro,anon=0   ""
  -               /export/packages   ro,anon=0   ""

d. ファイルの共有を確認します。

  # showmount -e localhost
  export list for localhost:
  /export/install  (everyone)
  /export/config   (everyone)
  /export/patches  (everyone)
  /export/packages (everyone)

4. クライアントの tftpboot ファイルの作成

各クライアントに対して add_install_client スクリプトを実行します。

a. add_install_client スクリプトがある場所に移動します。

  # cd /export/install/Solaris_10/Tools

b. JumpStart インストールを実行するネットワークで、クライアントごとに add_install_client スクリプトを実行します。クライアントごとに正しい引数を使用してください。-e 引数はクライアントの MAC アドレスです。-p 引数は、クライアントで使用する sysidcfg ファイルのディレクトリ名を示します。add_install_client を 2 つの独立したクライアントに対して実行する場合は、次のようになります。

  # ./add_install_client \
      -d \
      -e 00:0a:e4:37:16:4d \
      -s 172.16.64.194:/export/install \
      -c 172.16.64.194:/export/config \
      -p 172.16.64.194:/export/config/sysidcfg1 i86pc

  enabling tftp in /etc/inetd.conf
  Converting /etc/inetd.conf
  enabling network/tftp/udp6 service
  copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1

  If not already configured, enable PXE boot by creating
  a macro named 01000AE429C1FD with:
    Boot server IP (BootSrvA) : 172.16.64.194
    Boot file      (BootFile) : 01000AE429C1FD

  # ./add_install_client \
      -d \
      -e 00:0a:e4:2a:33:f8 \
      -s 172.16.64.194:/export/install \
      -c 172.16.64.194:/export/config \
      -p 172.16.64.194:/export/config/sysidcfg2 i86pc

  enabling tftp in /etc/inetd.conf
  Converting /etc/inetd.conf
  enabling network/tftp/udp6 service
  copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1

  If not already configured, enable PXE boot by creating
  a macro named 01000AE42A33F8 with:
    Boot server IP (BootSrvA) : 172.16.64.194
    Boot file      (BootFile) : 01000AE42A33F8

Boot server IP および Boot file の値は、dhcpmgr が実行中にマクロを作成するときにあとで使用されます。

5. DHCP サーバーの構成と実行

a. dhcpmgr を実行します。

  # /usr/sadm/admin/bin/dhcpmgr
  Java Accessibility Bridge for GNOME loaded.

初期画面が表示されます。
(画像をクリックすると拡大されます)

b. 「Configure as a DHCP Server」を選択し、「OK」をクリックします。

DHCP Configuration Wizard が表示されます。

c. 「Text Files」を選択し、「Next」をクリックします。

d. ストレージのパスを確認し、「Next」をクリックします。

e. ネームサービスを選択し、「Next」をクリックします。

f. リース情報を確認し、「Next」をクリックします。

g. DNS ドメイン情報を確認し、「Next」をクリックします。

h. ネットワーク情報を確認し、「Next」をクリックします。

i. ネットワークの種類とルーティングオプションを選択し、「Next」をクリックします。

j. NIS ドメイン情報を確認し、「Next」をクリックします。

k. NIS+ ドメイン情報を確認し、「Next」をクリックします。

l. 各設定を確認し、「Finish」をクリックします。

DHCP マネージャーが表示され、Address Wizard の起動を確認するメッセージが表示されます。

m. 「Yes」をクリックします。

Address Wizard が表示されます。

n. IP アドレスの数を入力し、「Next」をクリックします。

o. サーバー情報を確認し、「Next」をクリックします。

p. IP アドレスを確認し、「Next」をクリックします。

q. クライアントの構成情報を確認し、「Next」をクリックします。

r. リースの種類を選択し、「Next」をクリックします。

s. 各設定を確認し、「Finish」をクリックします。

dhcpmrg が実行されている状態で、BootFile および BootSrvA マクロを作成します。「Create Macros」フォームにアクセスするには、まず「DHCP Manager」フォームの「Macros」タブを選択します。次に、トップメニューで「Edit」、「Create」の順に選択します。

「Create Macros」フォームが表示されます。

t. マクロの BootFile 部分を作成します。「Name」フィールドに、1 つ目のクライアントに対して add_install_client スクリプトが生成した名前を入力します。この名前は「Option Value」フィールドでも使用します。情報を入力したら、「Add」をクリックします。

u. マクロの BootSrvA 部分を作成します。「Option Value」フィールドに JumpStart サーバーのネットワーク IP アドレスを入力します。情報を入力したら、「Add」をクリックします。続いて、「OK」をクリックして 1 つ目のマクロの作成を完了します。

v. 同じ手順を繰り返して、2 つ目のマクロを作成します。

w. 「Add」をクリックします。

x. 「Add」をクリックし、次に「OK」をクリックします。

y. 2 つ目のマクロを作成したあと、DHCP マネージャーウィンドウで「File」、「Exit」の順に選択し、dhcpmgr ユーティリティーを終了します。

最終的なクリーンアップ

add_install_client スクリプトを実行したとき、スクリプトはクライアントごとに menu.lst<filename> ファイルを作成しています。

/tftpboot/menu.lst<BootFile: Name> ファイルの作成時のバグのため、4 行目の kernel/unix のあとに、次のテキストを追加する必要があります。

- install dhcp

変更前のファイルは次のようになっています。

default=0
timeout=30
title Solaris_10 Jumpstart
    kernel /I86PC.Solaris_10-1/multiboot kernel/unix -B \
install_config=172.16.64.194:/export/config, \
sysid_config=172.16.64.194:/export/config/sysidcfg1, \
install_media=172.16.64.194:/export/install, \
install_boot=172.16.64.194:/export/install/boot
    module /I86PC.Solaris_10-1/x86.miniroot

これを、次のように変更します。

default=0
timeout=4
title Solaris_10 Jumpstart
    kernel /I86PC.Solaris_10-1/multiboot kernel/unix - install dhcp -B \
install_config=172.16.64.194:/export/config, \
sysid_config=172.16.64.194:/export/config/sysidcfg1, \
install_media=172.16.64.194:/export/install, \
install_boot=172.16.64.194:/export/install/boot
    module /I86PC.Solaris_10-1/x86.miniroot

自動 JumpStart インストールの実行

    クライアントをブートします。

    プロンプトが表示されたら、クライアントのキーボードで F12 キーを押します。

    Network Boot Request....
    
    CLIENT MAC ADDR: 00 0A E4 2A 33 F8  GUID: 11223344 556 7788 99AA \
                                              BBCCDDEEFF00
    
    DHCP....\|/-\|/-
    

    正しく設定されていれば、インストールが実行され完了します。問題がある場合は、インストーラが終了し、シェルに戻ります。エラーの原因は install_log ファイルに記録されます。


インストール後

JumpStart インストールのログファイルを次に示します。

  /var/sadm/system/logs/install_log
                        begin_log
                        finish_log
                        sysidtool.log

執筆者紹介

Craig Winter 氏および Dale Layfield 氏は、米国 Sun Microsystems, Inc. の Market Development Engineering 部門の MDE Verticals Group に所属するスタッフエンジニアです。


Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License.


BigAdmin