ネットワークブート・サーバの構築方法を説明します。
[詳細]
ネットワーク・インストールやサーバのメンテナンスを行う際に、ネットワーク上からOSのイメージを自動でダウン・ロードして、作業を行うと非常に便利です。これを可能にするのがネットワークブートです。ネットワークブートにはPreboot eXecution Environment(PXE)という方式が一般的によく使われています。
そこで、PEXのネットワークブート・サーバの構築をtftpサーバを利用した方法について4回に分けて説明します。
第1回目の今回はサーバ・ソフトのセットアップについて説明します。
[PXEブートの仕組み]
PXEを実装したNICがブロードキャストで、DHCPサーバへIPアドレスなどのネットワークの設定とともに、bootサーバのIPアドレスとNBP(NetworkBootProgram)のパスと要求します。
IntelのPXEのスペック資料によると、左の図のようにNBTのパスを教えるをbootサービスはDHCPサーバではなくbootサーバの役目です。しかし、一般的にlinuxで利用されているiscのDHCPサーバでは、右の図のようにこの役割も兼ねていますので、DHCPサーバとbootサーバを分けることが出来ます。
- [前提条件]
DHCPサーバとNFSサーバを使用します。それぞれのインストール、初期セットアップが終わっていることを前提に話を進めます。
- [tftp, syslinuxパッケージのインストール]
tftpサーバ, syslinux, xinetdをインストールします。(tftpサーバとxinetdは依存関係があるの指定しなくともインストールされます。)
- Debian系(Ubuntuなど)の場合
root@linux00:~# apt-get install tftpd syslinux xinetd - Red Hat系 (CentOS, Fedoraなど)の場合
root@linux00:~# yum install tftpd-server syslinux xinetd
- Debian系(Ubuntuなど)の場合
- [ブートファイルの準備]
PXE bootに必要なファイルをtftpサーバの管理下のディレクトリに配置します。
- [ディレクトリの作成]
デフォルトのディレクトリは"/tftproot"になりますが、今回は"/var/tftpboot"を作成し使用します。
root@linux00:~# mkdir /vat/tftpboot設定ファイルを置くディレクトリを作成します。
root@linux00:~# mkdir /vat/tftpboot/pxelinux.cfg/ - [NBPのコピー]
"pxelinux.0"をtftpのディレクトにコピーします。
root@linux00:~# cp /usr/lib/syslinux/pxelinux.0 /vat/tftpboot
- [ディレクトリの作成]
- [xinetdの設定]
"tftpdapt-get"をインストールすると、tftpの設定ファイルが"/etc/xinetd.d/tftp"に作成されます。これを環境に合わせてカスタマイズします。
下記の斜体になっている部分を必要に応じて変更または追記します。
root@linux00:~# vi /etc/xinetd.d/tftp編集が完了したらxinetdを設定ファイルを再読み込みします。
service tftp{
disable = no # noからyesに変更
socket_type = dgram
protocol = udp
port = 69
user = nobody
group = nogroup
wait = yes
server = /usr/sbin/in.tftpd
server_args = /var/tftpboot # tftpdのルートディレクトリを指定します。defaultでよければ/tftpboot
only_from = 192.168.1.0/24 # アクセスを許可するマシン、ネットワークを指定します。
}
[Debian系, RHEL 6.x系 (initで管理されているシステム)]
root@linux00:~# /etc/init.d/xinetd reload[Fedora16以降 (systemdで管理されているシステム)]
root@linux00:~# systemctl reload xinetd.service - [DHCPサーバの設定]
PXEbootを有効にするためには"/etc/dhcpd/dhcpd.conf"に下の4行を追加します。
allow booting;
allow bootp;
next-server 192.168.1.2; #tftpサーバのホスト名、もしくはIPアドレス
filename "/var/tftpboot/pxelinux.0"; #NBPのファイル・パス - [NFSサーバの設定]
"/etc/exports"にNFSの共有設定を行います。下記の例では、"/var/www/images"を共有し、"192.168.1.0"のネットワークからのmountを許可しています。
/var/www/images 192.168.1.0/24(ro,no_root_squash,subtree_check)NFSの共有設定を有効にします。
root@linux00:~# exportfs -r
[参考文献] Intel Corporation (1999), 'Preboot Execution Environment (PXE) Specification Version 2.1'
0 件のコメント:
コメントを投稿