1,环境介绍
1.1,ks文件及本地网卡需手动配置
1.2,环境采用172.16.10.2作为PXE服务器,172.16.10.3-172.16.10.253 作为地址池,掩码24
2,部署环境准备,关闭防火墙及Selinux
systemctl stop firewalld
systemctl disable firewalld
setenfore 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
3,安装本次部署需要的服务软件包
yum install -y dhcp tftp-server httpd syslinux
4,配置dhcp服务,用于客户端获取ip
cat > /etc/dhcp/dhcpd.conf << END
subnet 172.16.10.0 netmask 255.255.255.0 {
range 172.16.10.3 172.16.10.253;
default-lease-time 3600;
filename "pxelinux.0";
next-server 172.16.10.2;
}
END
systemctl restart dhcpd
5,配置HTTP服务器,用于客户端获取安装源及ks.cfg自动化安装配置。
5.1 安装源
mkdir -p /var/www/html/CentOS7
cp -ar /mnt/iso/* /var/www/html/CentOS7/
5.2 配置ks文件
cp /root/anaconda-ks.cfg /var/www/html/ks.cfg
chmod +r /var/www/html/ks.cfg
5.3 ks文件注意修改处
# 第1个地方,源-
# Use CDROM installation media
#cdrom
url --url http://172.16.10.2/CentOS7
# 第2个地方,安装方式-
# Use graphical install
#graphical
text
# 第3个地方-格全盘-
#clearpart --none --initlabel
clearpart --all --initlabel
# 第4个地方-修改分区大小-
# Disk partitioning information
part /boot --fstype="xfs" --ondisk=sda --size=1024
part pv.252 --fstype="lvmpv" --ondisk=sda --size=29695
volgroup centos --pesize=4096 pv.252
logvol / --fstype="xfs" --size=28667 --name=root --vgname=centos
logvol /nas --fstype="xfs" --size=1024 --name=nas --vgname=centos
第5个地方-
%post
#中间可以加一些安装后配置,
%end
第6个地方,加入reboot,安装完成后自动重启-
reboot
6,配置xftp-server服务
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
cp /mnt/iso/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /mnt/iso/images/pxeboot/vmlinuz /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default
cat > /var/lib/tftpboot/pxelinux.cfg/default << END
default menu.c32
timeout 200
prompt 0
label 1
menu label ^1) install CentOS7
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://172.16.10.2/ks.cfg
END
7,重启服务,并配置http和tftp开机自启
# 注意dhcp建议不要开机自启,避免干扰到同网段别的服务器。
systemctl restart dhcpd
systemctl restart httpd
systemctl restart tftp.socket
systemctl enable httpd
systemctl enable tftp.socket