この章では、OS プロビジョニングプラグインを使用して、Linux オペレーティングシステムをターゲットホストにインストールする方法について説明します。
この章では、次の内容について説明します。
OS プロビジョニングプラグインは Linux の kickstart テクノロジを使用します。
Linux イメージサーバーを設定します。
Linux イメージを作成するか、イメージサーバーに既存のイメージを添付します。
ターゲットホストを作成します。
ターゲットホストに OS をインストールします。
Linux ブートおよびインストールサーバーには次のソフトウェアが含まれています。
Linux (RedHat Advanced Server 3.0 でテスト済み)
TFTP サーバー
ネットワークファイルシステム (NFS) サーバー
N1 SPS リモートエージェント (RA) (Linux 版)。詳細については、『Sun N1 Service Provisioning System 5.1 システム管理者ガイド』の「物理ホストを準備する」を参照してください。
Linux ファイルを含めるディレクトリを作成します。
同じサーバーから複数のディストリビューションにサービスを提供するため、各ディストリビューション用に独立したディレクトリを作成します。
最初の CD-ROM または ISO イメージファイルをマウントします。
次のいずれかの例のようなコマンドを使用します。
#mount /dev/cdrom デフォルトでは /mnt/cdrom にマウント、/etc/fstab を確認 #mount /path-to-first-iso /mnt/loop /mnt/loop が存在すると想定 |
CD-ROM または ISO イメージファイルの内容を、手順 1 で作成したディレクトリにコピーします。
次のいずれかの例のようなコマンドを使用します。
#/bin/cp -avf /mnt/cdrom/* /export/RHEL3.0 #bin/cp -avf /mnt/loop/* /export/RHEL3.0 |
ディストリビューションのすべての CD-ROM または ISO メディアに対して手順 2 と 3 を繰り返します。
ディストリビューションは、このブートおよびインストールサーバーからサービスを受ける各サブネットに関して、TFTP を介してアクセス可能である必要があります。
/etc/exports ファイルを編集し、次の例のような行を追加します。
/export 10.42.42.*(ro) |
NFS を有効にし、起動します。
RedHat AS 3.0 に適用される、次のようなコマンドを使用します。
#chkconfig nfs on #service nfs restart |
ディストリビューションは、このブートおよびインストールサーバーからサービスを受ける各サブネットに関して、TFTP を介してアクセス可能である必要があります。
/etc/xinet.d/tftp ファイルで server_args パラメータを探します。
これが、TFTP サーバーにより使用されるルートディレクトリを定義します。ディレクトリが存在しない場合は、ディレクトリを作成します。
この作業では例として /tftpboot を使用します。
TFTP を有効にし、xinetd デーモンを再起動します。
RedHat AS 3.0 で動作する、次の例のようなコマンドを使用します。
#chkconfig tftp on #service xinetd restart |
TFTP ルートディレクトリの下に、次のディレクトリをコピーまたは作成します。
/tftpboot/pxelinux.0 – Linux PXE ブートストラップファイルは http://syslinux.zytor.com/pxe.php からダウンロードできます。
/tftpboot/pxelinux.cfg/ – このディレクトリには PXE 構成ファイルが含まれています。これらのファイルには、各ハードウェアプラットフォームおよび Linux ディストリビューションに固有のパラメータが含まれています。
/tftpboot/pxelinux.cfg/v20z-config – V20z プラットフォームに固有のディレクトリ。
/tftpboot/vmlinuz – ディストリビューションの /images/pxeboot にある、インストールカーネル。
/tftpboot/initrd.img – ディストリビューションの /images/pxeboot にある、インストール RAM ディスク。
次の例に、SunFire V20z システムの PXE 構成ファイルを示します。
default el30 ks serial 0 9600 label el30 kernel vmlinuz append linksleep=30 ksdevice=eth0 console=tty0 console=ttyS1,9600 load_ramdisk=1 initrd=initrd.img network
各行の意味は次のとおりです。
最初の行 (default) はラベル el30 を使用し、Kickstart インストール (カーネルに ks を渡す) を行うことを指定します。
第 3 行 (label) は、ラベル el30 を定義します。
第 4 行 (kernel) は、読み込むカーネルを特定します。パスは pxelinux.0 に対して相対的です。
第 5 行 (append) には、一連のネットワーク構成パラメータが含まれています。append パラメータはすべて同じ行に存在する必要があります。ここに示す固有のパラメータは次のとおりです。
linksleep=30 は、システムが動作していないと判断する前にカーネルに待機するよう通知します。ネットワークインタフェースの中には、アップ状態になるまで長い時間を要するものもあります。
ksdevice=eth0 は、eth0 インタフェースを介してインストールを実行するよう指定します。このパラメータが省略されている場合、eth0 (の値) が使用されます。
console=tty0 console=ttyS1,9600 は、コンソールにインストール出力を表示するようコンソールパラメータを指定します。パラメータは、ターゲットハードウェアのプラットフォームに応じて異なります。
load_ramdisk は、RAM ディスクに initrd.img を使用することを示しています。RAM ディスクのパスは pxelinux.0 に対して相対的です。
initrd はネットワークインストールを実行することを示しています。
vmlinuz および initrd ファイルは、特定のディストリビューションの特定のバージョンのみで動作します。サーバーを使用して複数のディストリビューションまたはディストリビューションの複数のバージョンを提供する場合、各 vmlinuz と initrd のペアは一意に識別可能である必要があります。次の例に示すように、別のディレクトリを使用するかファイル名を変更することで、一意の識別子を作成できます。
/tftpboot/pxelinux.0 /tftpboot/RHEL2.1/vmlinuz /tftpboot/RHEL2.1/initrd /tftpboot/RHEL3.0/vmlinuz /tftpboot/RHEL3.0/initrd または /tftpboot/pxelinux.0 /tftpboot/rhel2.1-vmlinuz /tftpboot/rhel2.1-initrd /tftpboot/rhel3.0-vmlinuz /tftpboot/rhel3.0-initrd |
N1 SPS のブラウザインタフェースまたはコマンド行インターフェースから Linux イメージサーバーを作成できます。コマンド行からサーバーを作成するには、次のようなコマンドを入力します。
# cr_cli -cmd cdb.vs.add -comp NM:/com/sun/n1osp/untyped/LinuxServer \ -name "linuxserver" -u admin -p admin -vars "boot_server_tftp_root_directory=/tftpboot" # cr_cli -cmd pe.p.run -u admin -p admin \ -PID NM:/com/sun/n1osp/untyped/LinuxServer-create \ -tar H:NM:bikickstart -comp + -vs linuxserver -pto 30 -nto 10 |
ブラウザインタフェースからサーバーを作成するには、次の手順に従います。
kickstart ファイルは、/export/kickstart など、ターゲットホストが位置を特定できるように、NFS エクスポートディレクトリの Linux ブートおよびインストールサーバーに配置する必要があります。
プロビジョニングソフトウェアのページの「Common Tasks」セクションで、「OS Provisioning」を選択します。
「OS Provisioning Common Tasks」ページの「Linux Image Servers」セクションで「Create」をクリックします。
「Plans Details」ページの「Run」をクリックします。
このプランに使用する変数を選択します。
既存の変数セットを使用するには、「Plan Parameters」テーブルの「LinuxServer」コンポーネント行にあるドロップダウンメニューから名前を選択します。
新しい変数セットを作成するには、「Plan Parameters」テーブルの「LinuxServer」コンポーネント行で「Select from List」をクリックします。
「Create Set」をクリックします。
変数セットの名前を入力します。
必要に応じて、boot_server_tftp_root_directory 変数を、Linux パッケージをインストールする位置に変更します。
デフォルトでは、パスは /tftpboot です。
必要に応じて、linuxHost 変数を、コマンド行インタフェースの位置に変更します。
デフォルトでは、仮想 Linux ホスト名は、-linux が追加されたターゲットホストのホスト名に設定されています。
installPath 変数は変更しないでください。
変数セットを保存します。
「Plan Parameters」テーブルの「LinuxServer」コンポーネント行にあるドロップダウンメニューから、直前に保存した変数セットを選択します。
Linux イメージサーバーを作成するホストを選択します。
「Run Plan (includes preflight)」をクリックします。
イメージサーバーが正常に作成されたことを確認するには、プロビジョニングサーバーのウィンドウの左側にある「Hosts」リンクをクリックします。
-linux が付加された仮想ホストの名前が表示されます。たとえば、ホスト bikickstart にインストールした場合、仮想ホストは bikickstart-linux です。
Linux イメージサーバーが存在し、そのサーバーで Linux オペレーティングシステムソフトウェアが使用できることを確認します。Linux イメージサーバーの作成方法の詳細については、「Linux サーバーの設定」を参照してください。
プロビジョニングソフトウェアのページの「Common Tasks」セクションで、「OS Provisioning」を選択します。
「OS Provisioning Common Tasks」ページの「Linux Images」セクションで「Create Profile」をクリックします。
「Plans Details」ページの「Run」をクリックします。
このプランに使用する変数を選択します。
「Plan Details Run」ページで、プロファイルの作成先の Linux イメージサーバーを選択します。
Linux イメージサーバーのホスト名は末尾が -linux になります。
「Run Plan (includes preflight)」をクリックします。
Linux イメージサーバーに対して Linux プロファイルが作成されたことを確認するには、N1 SPS ブラウザインタフェースの左側にある「Components」をクリックします。
フォルダ /com/sun/n1osp/autogen-server-name-linux/provision/ には provision コンポーネントがあるはずです。ここで server-name は、変数セットでユーザーが指定した Linux サーバー名です。次に例を示します。/com/sun/n1osp/autogen-LinuxRedHat3.0_x86-linux/provision/
LinuxImage コンポーネントの変数セットを作成するには、次の例のようなコマンドを入力します。
# cr_cli -cmd cdb.vs.add -comp NM:/com/sun/n1osp/untyped/LinuxImage \ -name "redhat3" -u admin -p admin -vars "osp_server=masterserver-osp;version=RedHat3.0; \ architecture=x86;installPath=Linux:[version]_:[architecture]; \ description=testlinux;min_disk_size=10GB;monitor_install=FALSE; \ boot_server_name=bikickstart;boot_server_subnet_address=10.42.42.0; \ boot_server_subnet_ip_address=10.42.42.3;kickstart_file=/export/el30.cfg;\ pxe_boot_file=linux-install/pxelinux.0;pxe_configuration_file=el30-console" |
プランを実行するには、次の例のようなコマンドを入力します。
# cr_cli -cmd pe.p.run -u admin -p admin \ -PID NM:/com/sun/n1osp/untyped/LinuxImage-create-profile \ -tar H:NM:bikickstart-linux -comp + -vs redhat3 -pto 30 -nto 10 |
プロファイルは、ターゲットホストに OS イメージをプロビジョニングするために使用されます。これらのプロファイルは、/com/sun/n1osp/autogen...provision フォルダにあります。新しい OS イメージが作成 (または添付) されるたびに、新しいプロファイルがプロビジョンフォルダに追加されます。
プロビジョニングソフトウェアのページの「Common Tasks」セクションで、「OS Provisioning」を選択します。
「OS Provisioning Common Tasks」ページの「Linux Images」セクションで「Provision OS」をクリックします。
provision コンポーネントが含まれる Linux フォルダにナビゲートします。
たとえば次のようなフォルダです。/com/sun/n1osp/autogen-bikickstart-linux/provision/LinuxRedHat3.0_x86
コンポーネント名を選択します。
「Component Details」ページで Provision_start:Install プロシージャの横にある「Run action」をクリックします。
オペレーティングシステムのプロビジョニング先であるターゲットホストを選択します。
ターゲットホストのホスト名の末尾は -target です。
「Run Plan (includes preflight)」をクリックします。
プロビジョニングソフトウェアのページの「Common Tasks」セクションで、「OS Provisioning」を選択します。
「OS Provisioning Common Tasks」ページの「OS Provisioning Administration Tasks」セクションで「Status」をクリックします。
「Plans Details」ページの「Run」をクリックします。
「Plan Details Run」ページで、オペレーティングシステムのプロビジョニング先であるターゲットホストを選択します。
「Run Plan (includes preflight)」をクリックします。
「Details」リンクをたどり、状態を表示します。