本机环境:
VMWARE 12 redhat7.3
#dhcp
yum -y install dhcp
编辑/etc/dhcp/dhcpd.conf 设置好网段,网关(网关为自己), filename 等
然后启动服务,并设置为开机自动启动
systemctl start dhcpd
systemctl enable dhcpd
#tftp
yum -y install tftp
编辑/etc/xinetd.d/tftp 把disabled值改为no就是了
启动服务并加入开机启动
systemctl start xinetd
systemctl enable xinetd
#vsftpd
yum install vsftpd -y
编辑/etc/vsftpd/vsftpd.conf
启动服务并加入开机启动
systemctl start vsftpd
systemctl enable vsftpd
#安装syslinux
yum install syslinux -y
#复制/usr/share/syslinux/pxelinux.0 到 /var/lib/tftpboot
cp -rf /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
mkdir /var/lib/tftpboot/pxelinux.cfg
mount /dev/sr0 /var/ftp/pub/
cp -rf /var/ftp/pub/isolinux/* /var/lib/tftpboot
mv /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
然后安装system-config-kickstart 用来生成自动应答文件ks.cfg 类似/root/anaconda-ks.cfg
yum install system-config-kickstart -y
system-config-kicakstart
配置可参考如下
如果新生成的ks.cfg没有定义安装哪些包的话,需手动写
vim /root/ks.cfg @core 表示core包组,由很多包组成
把新生成的/root/ks.kfg 保存到 /var/ftp/
mv /root/ks.cfg /var/ftp
修改 /var/lib/tftpboot/pxelinux.cfg/default
关闭selinux 防火墙,然后测试
只需要坝本机IP设置为192.168.43.108,然后关掉firewalld 和selinux;运行以下脚本即可自动生成pxe环境
#!/bin/bash
umount /dev/sr0 2> /dev/null
mount /dev/sr0 /mnt 1> /dev/null
yum install dhcp tftp-server xinetd vsftpd syslinux -y
sed -i '/disable/c\\tdisable\t\t\t=no' /etc/xinetd.d/tftp
sed -i '/local_enable/clocal_enable=NO' /etc/vsftpd/vsftpd.conf
dhcp_config='# dhcp\nsubnet 192.168.43.0 netmask 255.255.255.0 {\n range 192.168.43.109 192.168.43.200;\n option routers 192.168.43.108;\n option broadcast-address 192.168.43.255;\n default-lease-time 600;\n max-lease-time 7200;\n filename "pxelinux.0";\n}\n
'
echo -e $dhcp_config > /etc/dhcp/dhcpd.conf
systemctl start dhcpd 2>/dev/null
[ $? -ne 0 ] && echo "dhcp start FAILED"
systemctl start vsftpd 2>/dev/null
[ $? -ne 0 ] && echo "vsftpd start FAILED"
systemctl start xinetd 2>/dev/null
[ $? -ne 0 ] && echo "xinetd start FAILED"
systemctl enable dhcpd
systemctl enable vsftpd
systemctl enable xinetd
umount /dev/sr0
mount /dev/sr0 /var/ftp/pub
mkdir /var/lib/tftpboot/pxelinux.cfg
cp -rf /var/ftp/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cp -rf /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp -rf /var/ftp/pub/isolinux/* /var/lib/tftpboot
ks_value="install\nkeyboard 'us'\nrootpw --plaintext 123456\nlang zh_CN.UTF-8\nfirewall --disabled\nauth --useshadow --passalgo=sha512\nurl --url="ftp://192.168.43.108/pub"\ntext\nfirstboot --enable\nselinux --disabled\nnetwork --bootproto=dhcp --device=eth0\nreboot\ntimezone Asia/Shanghai\nbootloader --location=mbr\nclearpart --all\npart swap --fstype="swap" --size=2048\npart /boot --fstype="ext4" --size=200\npart / --fstype="ext4" --size=1 --grow\n%packages\n@core\n%end"
echo -e ${ks_value} > /var/ftp/ks.cfg
sed -i '/initrd/c\ append initrd=initrd.img ks=ftp://192.168.43.108/ks.cfg quiet' /var/lib/tftpboot/pxelinux.cfg/default
sed -i 's/Red Hat Enterprise Linux 7.3/Auto Install Linux by DDCW/' /var/lib/tftpboot/pxelinux.cfg/default
sed -i '/timeout/ctimeout 30' /var/lib/tftpboot/pxelinux.cfg/default
sed -i '/menu default/d' /var/lib/tftpboot/pxelinux.cfg/default
sed -i '/label linux/a menu default' /var/lib/tftpboot/pxelinux.cfg/default
echo "successed"
测试:(关闭selinux和防火墙)。新建一个虚拟机,把网络设置为与宿主机同一vmnet。然后点开始即可
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。