1、关闭本机防火墙及selinux
systemctl stop firewalld
systemctl disable firewalld
sed -ri '/^SELINUX/cSELINUX=disabled' /etc/selinux/config
setenforce 0
2、安装所需软件
yum -y install dhcp tftp-server vsftpd xinetd syslinux
3、配置
3.1、DHCP配置
vim /etc/dhcp/dhcpd.conf
//添加如下内容
subnet 192.168.20.0 netmask 255.255.255.0 {
range 192.168.20.1 192.168.20.253;
next-server 192.168.20.140; // tftp-server IP即本机IP
filename "pxelinux.0"; // 指向的是tftp-server的根目录/var/lib/tftpboot
}
systemctl restart dhcpd // 如果重启dhcpd报错,很可能是配置文件写错
systemctl enable dhcpd
netstat -antpu | grep 67 // 查看dhcp是否开启
3.2、tftp-server配置
准备镜像文件,将镜像文件放到了/root/centos7目录下
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
//拷贝初始启动文件到tftp
mkdir /var/lib/tftpboot/pxelinux.cfg
mkdir /mnt/cdrom
mount /root/centos7/CentOS-7-x86_64-DVD-1611.iso /mnt/cdrom
cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cp -rf /mnt/cdrom/isolinux/* /var/lib/tftpboot/ // 提供引导菜单所需的文件
修改xinetd配置文件,启动tftp
vim /etc/xinetd.d/tftp
// 修改以下内容
disable = no
systemctl enable xinetd
systemctl restart xinetd
netstat -antpu | grep 69 // 查看xinetd是否开启
3.3、ftp配置
mkdir /var/ftp/centos7u3
// 用来挂载镜像文件
echo "/root/centos7/CentOS-7-x86_64-DVD-1611.iso /var/ftp/centos7u3 iso9660 defaults 0 0" >> /etc/fstab
mount -a // 将镜像文件挂载到ftp目录下
vim /var/lib/tftpboot/pxelinux.cfg/default
// 修改如下内容
label linux
menu label ^Install centos 7
menu default
kernel vmlinuz
append initrd=initrd.img inst.stage2=ftp://192.168.20.140/centos7u3 inst.repo=ftp://192.168.20.140/centos7u3
systemctl enable vsftpd
systemctl restart vsftpd
ss -tunlp |egrep '21|67|69'
4、kickstart配置
4.1、ks文件的获取
kickstart文件有两种方法获取,一是直接拷贝本机的ks文件。二是安装system-config-kickstart,生成ks文件,这里我们用的是第一种方法。
cp /root/anaconda-ks.cfg /var/ftp/centos7-ks.cfg
//将本机anaconda-ks.cfg拷贝到ftp目录下,并改名为centos7-ks.cfg
chmod 777 /var/ftp/centos7-ks.cfg
//修改权限,否则无法获取ks文件
vim /var/lib/tftpboot/pxelinux.cfg/default
//将ks文件获取路径添加进配置文件
label linux
menu label ^Install centos 7
menu default
kernel vmlinuz
append initrd=initrd.img inst.stage2=ftp://192.168.20.140/centos7u3 inst.repo=ftp://192.168.20.140/centos7u3 inst.ks=ftp://192.168.20.140/centos7-ks.cfg
4.2、ks文件的修改
可以直接使用下面的配置,初始密码123456,注意1M的分区biosboot有些情况下必须有
vim /var/ftp/centos7-ks.cfg
install
keyboard 'us'
rootpw --iscrypted $6$DzXUsSJ9$e1SZB3kKsqpAJv0d7UJPmWhky1ly/hfJdiRnFOlG/Oc3hUKydhF5j5AFSVienYV3q7ZgTDlN2tQjPfqCnJGcw/
timezone Asia/Shanghai
url --url="ftp://192.168.20.140/centos7u3"
lang en_US
firewall --disabled
selinux --disabled
auth --useshadow --passalgo=sha512
text
skipx
network --bootproto=dhcp --device=eth0
reboot
zerombr
clearpart --all --initlabel
part /boot --fstype="xfs" --size=200
part biosboot --fstype="biosboot" --size=1
part swap --fstype="swap" --size=65536
part / --fstype="xfs" --grow --size=1
%packages
@^minimal
@compat-libraries
@core
@desktop-debugging
vim-enhanced
bash-com*
%end
%post
%end
4.3、重启服务
systemctl restart xinetd
systemctl restart vsftpd