# 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)