PXE 远程安装服务器集成了 CentOS 7 安装源、 TFTP 服务、 DHCP 服务,能够向客
户机裸机发送 PXE 引导程序、 Linux 内核、启动菜单等数据,以及提供安装文件。
实验设备:
一台Linux系统搭建服务 20.0.0.254
一台Linux系统做PXE测试 DHCP获取
mkdir -p /var/ftp/centos7 //创建目录centos7
mount /dev/cdrom /mnt //挂载光盘
cp -rf /mnt/* /var/ftp/centos7 //把光盘里的文件全部复制到centos7
其中r表示递归复制所有文件及子目录,f表示表示同名文件时不提醒,强制复制
yum -y install vsftpd
systemctl start vsftpd
systemctl enable vsftpd
TFTP服务由tftp-server软件包提供,默认由xinetd超级服务进行管理,配置文件位于/etc/xinetd.d/tftp,在配置时需要把“disable = yes”改为"disable = no",然后启动xinetd服务。
yum -y install tftp-server
vi /etc/xinetd.d/tftp
disable=no
systemctl start tftp
用于PXE网络安装的Linux内核、初始化镜像文件可以从centos7系统光盘获得,分别为vmlinuz和initrd.img,位于images/pxeboot目录下。找到这两个文件并将其复制到tftp服务的根目录下。
cd /mnt/images/pxeboot/
ls
cp initrd.img vmlinuz /var/lib/tftpboot/
用于PXE网络安装的引导程序为pxelinux.0,由软件包syslinux提供。安装好syslinux软件包后,把pxelinux.0也复制到tftp服务的根目录下。
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
创建启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://20.0.0.100/centos7 //为ftp服务器地址
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://20.0.0.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://20.0.0.100/centos7
:wq
systemctl start tftp
setenforce 0
yum -y install dhcp
vi /etc/dhcp/dhcpd.conf
subnet 20.0.0.0 netmask 255.255.255.0 {
range 20.0.0.20 20.0.0.30;
option routers 20.0.0.2;
#option domain-name-servers 8.8.8.8;
next-server 20.0.0.100;
filename "pxelinux.0";
}
:wq
systemctl start dhcpd
systemctl enable dhcpd
当vsftp、tftp、syslinux、dhcp服务建立起来且/etc/xinetd.d/tftp,/var/lib/tftpboot/pxelinux.cfg/default和/etc/dhcp/dhcpd.conf文件配置完成后即可成功引导客户机进行Linux装机,但此时仍需手动操作,下面将介绍通过kickstart无人值守自动装机
yum -y install system-config-kickstart
保存到/home/cenjeal目录下
复制文件到/var/ftp目录下
cp /home/cenjealks.cfg /var/ftp/ks.cfg
vi /root/anaconda-ks.cfg //打开该文件
把这一段复制到/var/ftp/ks.cfg完成图形界面安装
进入default文件
vi /var/lib/tftpboot/pxelinux.cfg/default
在label auto段落后面添加ks=ftp://20.0.0.100/ks.cfg
重启服务
systemctl restart tftp
systemctl restart vsftpd