筆者は複数のブートローダーを使い分けている都合で、今回のようにPXE関連の設定(hostのfilenameとnext-server)をホストと関連付けて個別設定するようにしていますが、特定のブートローダーが使えればいい場合は、PXE関連の設定を一括で設定することもできます。
この場合、前述のhostスコープはなくても問題ありません。ブート時に構成をメニューで選択する場合などで有効でしょう。設定方法はsubnetスコープの中に、以下のclassを追加します。
class "pxeclients" { match if substring (option vendor-class-identifier, 0, 9) = "PXEClient"; filename "/pxeboot_cent65/pxelinux.0"; next-server 192.168.1.2; }
設定の意味は以下の通りです。
PXEクライアントからのリクエストの場合のみ、classスコープでの設定を有効にします。
hostスコープで設定したものと同じです。
hostスコープで設定したものと同じです。
TFTPはファイルを転送するという意味でFTPと似ていますが、認証機能がなくUDPを使用するなど、FTPと比べて単純で軽量なプロトコルです。TFTPサーバーは「xinetd」というサービスを通して通信しますので、TFTPサーバーを利用する場合はxinetdサービスが起動していなくてはなりません(下図参照)。追加パッケージ導入後の起動設定で、xinetdをonにしていたのを思い出してください。
それではTFTPサーバーの設定をしましょう。最初にTFTPサーバーのルートディレクトリ(/var/lib/tftpboot/)に移動します。
# cd /var/lib/tftpboot/
このディレクトリがTFTPでアクセスしてきた時のルートディレクトリになります。前述の通りTFTPは認証がありませんので、取得されるとセキュリティ上の問題があるようなファイルは絶対に置かないでください。
次にブートローダーを配置するディレクトリを作成します。ここではディレクトリ名を「pxeboot_cent65」とします。
# mkdir pxeboot_cent65
ここで気付かれた方もいるかもしれませんが、先ほどDHCPサーバーの設定で、このディレクトリ名が出てきています。hostスコープのfilenameで指定したものですね。
もし、このディレクトリ名を変更する場合は、hostスコープのfilenameで指定しているブートローダーのパス名も同じく変更し、DHCPサーバーを再起動する必要があります。また、複数のブートローダーを配置したい場合は、同じようにディレクトリを作成してDHCPサーバーの設定で使い分けることもできます。
ここまでできましたら、次はブートローダーの中身を準備しましょう。先に作成したディレクトリの中に必要なファイルをコピーします。CentOSのインストール用DVDからコピーするファイルもありますので、CentOSのインストール用DVDをあらかじめマウントしておくか、先にコピーしたYumリポジトリの中身からコピーしてください。
以下のコマンド例はCentOSのインストール用DVDを/mediaにマウントした場合です。
# cp /media/isolinux/{initrd.img,vmlinuz} /var/lib/tftpboot/pxeboot_cent65/ # cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/pxeboot_cent65/ # touch /var/lib/tftpboot/pxeboot_cent65/boot.msg # mkdir /var/lib/tftpboot/pxeboot_cent65/pxelinux.cfg
コピーおよび作成するファイルは以下の通りです。
ブートする際に使う設定ファイルは「01-{ハイフン区切りのMACアドレス}」というファイル名にすることで、サーバー個別の設定を割り当てられます。例えばサーバーのMACアドレスがa1:a2:a3:a4:a5:a6(架空です)の場合は、「01-a1-a2-a3-a4-a5-a6」というファイル名にします。
また、自身のMACアドレスに該当する設定ファイルが見つからない場合は「default」というファイル名の設定ファイルを使用します。今回はサーバー個別の設定をメニューで選択できるようにしますので、ここではdefaultファイルだけ作成しましょう。
以下のような内容のdefaultファイルを、先ほど作成したpxelinux.cfgディレクトリ配下に作成しましょう。
prompt 0 default menu.c32 timeout 300 menu title === PXE Boot Menu === menu tabmsg Please Select a Number ontimeout centos65_core label centos65_core menu label ^1 CentOS 6.5 core kernel vmlinuz append initrd=initrd.img ks=http://{自動構築サーバーのIPアドレス}/ks/default.cfg ksdevice=bootif ipappend 2
設定の意味は以下の通りです。
パラメーターの意味について詳細は「SYSLINUX - Syslinux Wiki」を参照してください。
Copyright © ITmedia, Inc. All Rights Reserved.