sudo apt install dnsmasq nfs-kernel-server pxelinux sudo iptables -A INPUT -i lan -p udp --dport 67 -j ACCEPT -m comment --comment "dhcp" sudo iptables -A INPUT -i lan -p udp --dport 69 -j ACCEPT -m comment --comment "tftp" sudo iptables -A INPUT -i lan -p tcp --dport 53 -j ACCEPT -m comment --comment "dns/tcp" sudo iptables -A INPUT -i lan -p udp --dport 53 -j ACCEPT -m comment --comment "dns/udp" sudo iptables -A INPUT -i lan -p tcp --dport 111 -j ACCEPT -m comment --comment "portmapper/tcp" sudo iptables -A INPUT -i lan -p udp --dport 111 -j ACCEPT -m comment --comment "portmapper/tcp" sudo iptables -A INPUT -i lan -p tcp --dport 2049 -j ACCEPT -m comment --comment "nfs/tcp" sudo iptables -A INPUT -i lan -p udp --dport 2049 -j ACCEPT -m comment --comment "nfs/udp" sudo iptables -A INPUT -i lan -p tcp -m multiport --dports 32765:32768 -j ACCEPT -m comment --comment "nfs3 rpc/tcp" sudo iptables -A INPUT -i lan -p udp -m multiport --dports 32765:32768 -j ACCEPT -m comment --comment "nfs3 rpc/udp" sudo sh -c "iptables-save > /etc/iptables/rules.v4" sudo mkdir -p /media/iso/centos7 sudo mount -t iso9660 -o ro,loop /media/iso/CentOS-7-x86_64-DVD-1708.iso /media/iso/centos7 sudo mkdir -p /srv/nfs/centos7 sudo mkdir -p /srv/tftp/pxelinux.cfg sudo mkdir -p /srv/tftp/images/centos7 sudo cp /media/iso/centos7/images/pxeboot/initrd.img /srv/tftp/images/centos7/ sudo cp /media/iso/centos7/images/pxeboot/vmlinuz /srv/tftp/images/centos7/ sudo cp /usr/lib/PXELINUX/pxelinux.0 /srv/tftp sudo cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp sudo cp /usr/lib/syslinux/modules/bios/vesamenu.c32 /srv/tftp sudo cp /usr/lib/syslinux/modules/bios/libcom32.c32 /srv/tftp sudo cp /usr/lib/syslinux/modules/bios/libutil.c32 /srv/tftp sudo vi /srv/tftp/pxelinux.cfg/default -- default vesamenu.c32 prompt 0 timeout 30 menu title ########## PXE Boot Menu ########## label centos7-nfs menu label ^Install CentOS 7 x64 from local NFS kernel images/centos7/vmlinuz append initrd=images/centos7/initrd.img method=nfs4://172.16.1.1/centos7 ip=dhcp label centos7-mirror menu label ^Install CentOS 7 x64 from http://mirror.centos.org repo kernel images/centos7/vmlinuz append initrd=images/centos7/initrd.img method=http://mirror.centos.org/centos/7/os/x86_64/ ip=dhcp -- sudo vi /etc/dnsmasq.d/local.conf -- interface=lan bind-interfaces dhcp-range=172.16.1.50,172.16.1.99,255.255.255.0,1h dhcp-boot=pxelinux.0,pxeserver,172.16.1.1 enable-tftp tftp-root=/srv/tftp -- sudo vi /etc/hosts.deny -- ALL : ALL -- sudo vi /etc/hosts.allow -- ALL : 127.0.0.0/8 sshd : ALL lockd mountd nfsd rpcbind rquotad statd : 172.16.1.0/24 -- sudo vi /etc/default/nfs-common -- STATDOPTS="--port 32765 --outgoing-port 32766" NEED_IDMAPD=yes -- sudo vi /etc/default/nfs-kernel-server -- RPCMOUNTDOPTS="--manage-gids --port 32767" -- sudo vi /etc/modprobe.d/lockd.conf -- /etc/modprobe.d/lockd.conf options lockd nlm_udpport=32768 nlm_tcpport=32768 -- sudo vi /etc/fstab -- /media/iso/CentOS-7-x86_64-DVD-1708.iso /media/iso/centos7 iso9660 ro,loop 0 0 /media/iso/centos7 /srv/nfs/centos7 none defaults,bind 0 0 -- sudo vi /etc/exports -- /srv/nfs 172.16.1.0/24(rw,sync,fsid=root,crossmnt,no_subtree_check) /srv/nfs/centos7 172.16.1.0/24(ro,sync,no_subtree_check,no_root_squash) -- sudo exportfs -ar sudo reboot