PXE自动化部署centos7
安装httpd,dhcp,tftp-server,syslinux,system-config-kickstart
在 /var/www/html路径下新建 centos/7/os/x86_64(mkdir /var/www/html/centos/7/os/x86_64 -p)
将centos镜像挂载至mnt目录下,拷贝所有文件至/var/www/html/centos/7/os/x86_64目录下 (cp -rv /mnt/* /var/www/html/centos/7/os/x86_64/)
关闭防火墙,关闭selinux,启动httpd服务,确保网页可以访问到x86_64目录下的所有文件,如图所示
制作DHCP文件,cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
# option definitions common to all supported networks... option domain-name "example.org"; option domain-name-servers 10.0.6.26; 子网配置(其中next-server为tftp服务器所在的服务器IP) # DHCP server to understand the network topology. subnet 10.1.81.0 netmask 255.255.255.0 { range 10.1.81.20 10.1.81.28; option routers 10.1.81.254; next-server 10.1.81.126; filename "pxelinux.0"; }
配置完毕,启动DHCP服务
选择安装源,路径选择网页访问路径

选择安装新的启动引导,使用net.ifnames=0将网卡名称从ens33修改为eth0

自定义分区,按实际需求分配

网络按照实际需求分配

关闭防火墙和selinux

选择需要安装的软件包(此处有BUG,需要将yum源的名称改成“development”才能正常显示)


安装前预配置

安装后执行的命令

将文件保存至root家目录,命名为ks.cfg

在%post %end区域间可以写入安装系统后需要执行的命令

在/var/www/html下新建ks目录,将制作完毕的ks文件放至/var/www/html/ks目录下,打开网页 确保可以通过网页访问ks文件


准备pxe启动相关文件
mkdir /var/lib/tftpboot/pxelinux.cfg/ cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/ cp /var/www/html/centos/7/os/x86_64/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/ cp /var/www/html/centos/7/os/x86_64/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
最终目录列表如下
/var/lib/tftpboot/ ├── initrd.img ├── menu.c32 ├── pxelinux.0 ├── pxelinux.cfg │ └── default └── vmlinuz
准备启动菜单
vi /var/lib/tftpboot/pxelinux.cfg/default default menu.c32 timeout 600 menu title PXE INSTALL MENU label auto menu label ^Auto Install CentOS 7 kernel vmlinuz append initrd=initrd.img ks=http://10.1.81.126/ks/ks.cfg label manual menu label ^Manual Install CentOS 7 kernel vmlinuz append initrd=initrd.img inst.repo=http://10.1.81.126/centos/7/os/x86_64 label local menu default menu label ^Boot from local drive localboot 0xffff
启动tftp服务,使用客户端测试tftp
客户端测试

浙公网安备 33010602011771号