# NFS+TFTP+DHCPD+PXE自動化運維(多系統)
1.配置前準備
[root@node1 ~]# /etc/init.d/iptables stop
[root@node1 ~]#setenforce 0
2.dhcpd服務配置
[root@node1 ~]#yum install dhcp-y
[root@node1 ~]# vim /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
#
ddns-update-style interim;
ignore client-updates;
next-server 192.168.110.16; # dhcpd服務器IP
filename "pxelinux.0";
option domain-name-servers 8.8.8.8;
option routers 192.168.110.254;
option subnet-mask 255.255.255.0;
allow booting;
allow bootp;
subnet 192.168.110.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.110.18 192.168.110.50; #客戶端ip分配範圍
}
[root@node1 ~]#/etc/init.d/dhcpd start
3. tftp服務配置
3.1 tftp服務配置
[root@node1 ~]#yum install tftp-server –y
[root@node1 ~]#vim /etc/xinetd.d/tftp
server_args = -s /tftpboot #默認目錄爲/var/lib/tftpboot
disable = no #默認爲yes,修改爲no
3.2 tftp目錄配置
[root@node1 ~]# yum install syslinux -y
[root@node1 ~]#mkdir /tftpboot/{centos6.4,centos6.5,pxelinux.cfg} -pv
[root@node1 ~]#cp /usr/share/syslinux/pxelinux.0 /tftpboot
[root@node1 ~]#cp /centosinstall/centos6.5/isolinux/ vesamenu.c32 /tftpboot
[root@node1 ~]#cp /centosinstall/centos6.5/isolinux/boot.msg /tftpboot
[root@node1 ~]# cp /centosinstall/centos6.5/images/vmlinuz /tftpboot/centos6.5
[root@node1 ~]#cp /centosinstall/centos6.5/images/initrd.img /tftpboot/centos6.5
[root@node1 ~]#cp /centosinstall/centos6.4/images/vmlinuz /tftpboot/centos6.4
[root@node1 ~]#cp /centosinstall/centos6.4/images/initrd.img /tftpboot/centos6.4
[root@node1 ~]#cp /centosinstall/centos6.5/isolinux/isolinux.cfg /tfpboot/pxelinux.cfg/default
3.3 修改/tftpboot/pxelinux.cfg/default文件,添加如下內容即可
[root@node1 ~]#vim /tftpboot/pxelinux.cfg/default
default vesamenu.c32
label centos64
menu label ^Install Centos6.4 system
menu default
kernel centos64/vmlinuz #默認會在tftp服務目錄下查找,當多系統時,需指定路徑
append ks=nfs:192.168.110.16:/centosnfs/centos64/ks64.cfg initrd=centos64/initrd.img
label centos65
menu label ^Install Centos6.5 system
menu default
kernel centos65/vmlinuz
append ks=nfs:192.168.110.16:/centosnfs/centos65/ks65.cfg initrd=centos65/initrd.img
3.4 啓動tftp服務
[root@node1 ~]#/etc/init.d/xinetd start
4. nfs服務配置
4.1 nfs服務配置
[root@node1 ~]#yum install nfs-utils –y
[root@node1 ~]# echo “/centosinstall/centos6.4 *(rw,sync)” /etc/exports
[root@node1 ~]#echo “/centosinstall/centos6.5 *(rw,sync)” /etc/exports
[root@node1 ~]# /etc/init.d/rpcbind start
[root@node1 ~]# /etc/init.d/nfs start
4.2 nfs共享文件配置(掛載光盤,複製iso鏡像到共享目錄)
[root@node1 ~]# mkdir /mnt/{centos6.4,centos6.5}
[root@node1 ~]#mount /dev/cdrom /mnt/centos6.4
[root@node1 ~]#cp –a /mnt/centos6.4 /centosinstall/centos6.4
[root@node1 ~]#cp /root/ks64.cfg /centosinstall/centos6.4
[root@node1 ~]#mount /dev/cdrom /mnt/centos6.5
[root@node1 ~]#cp –a /mnt/centos6.5 /centosinstall/centos6.5
[root@node1 ~]#cp /root/ks65.cfg /centosinstall/centos6.5
4.3 啓動nfs服務
[root@node1 ~]#/etc/init.d/rpcbind start
[root@node1 ~]#/etc/init.d/nfs start
5. 製作ks.cfg文件
ks.cfg文件可以自己編寫,也可以使用軟件system-config-kickstart生成。
firewall --disabled
install
nfs --server=192.168.110.16 --dir=/centosnfs/centos65
rootpw --iscrypted $1$2h9mMmFM$.rT/T4yqo/zj63mtkuueo/
auth --useshadow --passalgo=sha512
text
firstboot --disable
keyboard us
lang en_US
selinux --disabled
logging --level=info
reboot
timezone Asia/Shanghai
network --bootproto=dhcp --device=eth0 --onboot=on --noipv6 --nameserver=192.168.200.254
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part / --fstype="ext4" --grow --size=1
%packages
@core
@base
wget
%end
6. 客戶機進行測試
7. 要想全自動化,可以設置默認安裝系統,只需要將第3步中的C步驟中
default vesamenu.c32 修改爲 default centos6.4 (表示默認安裝centos6.4)