Cent6.5でPXEサーバを構築する
まずは、必要なパッケージをインストールする。
①TFTP
yum intsll tftp-server
xinetdがインストールされていない場合は必要になるので合わせてインストールされる
chkconfig tftp on
tftpのデフォルトのフォルダは/var/lib/tftpbootだが、必要があれば変更する。
今回は/var/tftpbootに変更する
vi /etc/xinetd.d/tftp # server_args = -s /var/lib/tftpboot server_args = -s /var/tftpboot
xinetdを起動する
/etc/rc.d/init.d/xinetd start
②syslinux
Linuxのブートローダである pxelinux.0 を /var/tftpboot/pxeboot/ に配置する。 pxelinux.0 は syslinux パッケージに含まれているので、syslinux をインストールする。
#yum install syslinux
pxelinux.0は/usr/share/syslinux/ にインストールされるのでtftpのディレクトリにコピーをする。
#cp /usr/share/syslinux/pxelinux.0 /var/tftpboot/pxeboot/pxelinux.0 #cd /var/tftpboot/pxeboot #mkdir pxelinux.cfg #vi /var/tftpboot/pxeboot/pxelinux.cfg/pxelinux.cfg/default default centos6.5 label centos6.5 kernel vmlinuz append ksdevice=eth0 ks=http://192.168.0.126/ks.cfg load initrd=initrd.img devfs=nomount
ISOイメージを以下に格納する。
/var/www/html/CentOS-6.5-x86_64-bin-DVD1.iso
Isoイメージをマウントする。
mount -t iso9660 -o loop /var/www/html/CentOS-6.5-x86_64-bin-DVD1.iso /mnt
起動イメージをtftpのフォルダにコピーする
cp /mnt/images/pxeboot/vmlinuz /var/tftpboot/pxeboot/ cp /mnt/images/pxeboot/initrd.img /var/tftpboot/pxeboot/ umount /mnt
③DHCP
dhcpサーバをインストールします。
yum install dhcp
サンプルのコンフィグをコピーしてdhcpd.confに変更します。
cp -f /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
dhcpd.confの設定を行います。
vi dhcpd.conf subnet 192.168.100.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.100.101 192.168.100.200; option domain-name-servers 8.8.8.8; option domain-name "itkiban.local"; option routers 192.168.100.126; option broadcast-address 192.168.100.255; default-lease-time 21600; max-lease-time 43200; filename "/pxeboot/pxelinux.0"; next-server 192.168.100.126; }
next-serverとは
- filename で指定するファイルをホストするサーバのアドレスを指定する。
- next-server を指定しない場合、DHCP サーバのアドレスが使用される。
- DHCP サーバと TFTP サーバを別にする場合などに使う。
/etc/rc.d/init.d/dhcpd start
chkconfig dhcpd on
④httpサーバ
OSのisoイメージを格納する場所を作ります
yum install httpd
Webサーバの公開領域にisoイメージを配置します。
今回のPXEサーバはisoイメージ専用のWebサーバとするので、rpmでインストールしたドキュメントルートに配置します。
/var/www/html/CentOS-6.5-x86_64-bin-DVD1.iso
/var/www/html/CentOS-6.5-x86_64-bin-DVD2.iso
ちなみにkick Startで自動化するには
/var/tftpboot/pxeboot/pxelinux.cfg/pxelinux.cfg/defaultのappend部分を以下のようにする。
ksdeviceはNICが2枚以上あるときには必須となる。
append ksdevice=eth0 ks=http://192.168.100.126/ks.cfg load initrd=initrd.img devfs=nomount