PXE+kickstart

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

你可能感兴趣的:(PXE+kickstart)