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