PXE boot + Kickstart でインストーラに自動でドライバイメージを読み込ませる方法

2014-04-19 by Daisuke Kotani

大量の物理サーバをセットアップするときに、PXE でブートして Kickstart を使ってインストールを自動化するノウハウはググればたくさん出てくるのですが、インストーラにドライバイメージを読み込ませないといけないときに自動で読み込ませるノウハウがなかなか出てこなかったので、メモ。 対象は CentOS 6.5 です。

例えば、HP DL320e Gen8 で HP Dynamic Smartアレイ B120i コントローラを使っている場合などが該当します。

手順

  1. ドライバイメージをダウンロードし、ネットワーク上に置く。
  2. PXE の設定ファイル (pxelinux.cfg/defaults) のカーネルオプションに、dd=[ドライバイメージのURL]を追加。

HP Dynamic Smartアレイ B120i コントローラを使っていて、CentOS 6.5 を PXE boot + kickstart でインストールします。kickstart ファイルは http://192.0.2.1/ks.cfg でダウンロードできるようになっていて、PXE でダウンロードされる設定ファイルは pxelinux.cfg/defaults であると仮定します。

  1. HP のサイトからドライバイメージ (hpvsa-1.2.8-140-rhel6u5.x86_64.dd.gz)をダウンロードし、解凍して、http://192.0.2.1/hpvsa-1.2.8-140-rhel6u5.x86_64.dd でダウンロードできるように kickstart ファイルと同じ Web サーバに置く。
  2. pxelinux.cfg/defaults の "append ... "の行を次のように書き換える。

    append ks=http://192.0.2.1/ks.cfg load initrd=initrd.img devfs=nomount

    append dd=http://192.0.2.1/hpvsa-1.2.8-140-rhel6u5.x86_64.dd ks=http://192.0.2.1/ks.cfg load initrd=initrd.img devfs=nomount

CentOS は RHEL のクローンなので、RHEL のドライバがそのまま使えるだろうということで、RHEL 6.5 用のドライバを使っています。

その他

サーバに複数の NIC がついているときは、カーネルオプションで ksdevice=link とつけるとリンクアップしているインターフェイスを使ってくれます。link の他にインターフェイスを直接指定する (eth0, eth1など) こともできます。

kickstart ファイルでOSのイメージをURLで指定していて、かつネットワークの設定(IPアドレスなど)も記述してある場合は、途中でkickstartファイルの設定が入ってそちらが有効になるので、注意が必要です。


このエントリーをはてなブックマークに追加