PXE是什么?
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用tftp(trivial file transfer protocol)或mtftpmulticast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户?)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统。如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux等。
什么情形使用PXE系统安装?
在实际工作中,我们经常会遇到这样的情况:想要安装Linux但是计算机没有光驱,或者是有大批量的计算机需要同时安装Linux,如果通过光驱的方式一个个安装,不仅效率低,也不利于维护。这是时候你就需要PXE的强大功能了。
硬件支持:
网卡必须可通过网络引导启动, 具体实现的是可获取到来自dhcp服务器上分配的ip地址, 并且可充当tftp服务端的客户端,去加载内核等文件。 早期网卡可能默认不支持这种功能, 但是现在几乎所有的网卡都支持这个功能。
需要搭建服务:
1>. dhcp服务器
2>. tftp-server 服务器
3>. ftp或则httpd服务 (用来提供yum仓库、kickstart文件)
下面通过pxe结合kickstart文件实现真正的全自动化安装centos7操作系统
实验拓扑图:
注意: dhcp、tftp、ftp(httpd)服务器可以放在不同服务器之上,这里简化。
流程图:
实验步骤:
搭建dhcp服务器:
1>. 修改配置文件/etc/dhcp/dhcpd.conf
2>. 启动dhcp服务器
systemctl start dhcpd
注意: dhcp具体细节可查看博客:http://9280078.blog.51cto.com/9270078/1870055
搭建tftp-server服务器。
1>. 安装程序包:
yum install -y tftp-server
2>. tftp-server生成的配置文件。
/etc/xinetd.d/tftp /usr/lib/systemd/system/tftp.service /usr/lib/systemd/system/tftp.socket /usr/sbin/in.tftpd /usr/share/doc/tftp-server-5.2 /usr/share/doc/tftp-server-5.2/CHANGES /usr/share/doc/tftp-server-5.2/README /usr/share/doc/tftp-server-5.2/README.security /usr/share/man/man8/in.tftpd.8.gz /usr/share/man/man8/tftpd.8.gz /var/lib/tftpboot
3>. 提供特定的内核、initrd.img、bootloader等文件。
提供bootloader文件: pxelinux.0 chain.c32 mboot.c32 memdisk menu.c32
以上这些文件由syslinux程序包提供。
yum install -y syslinux , 则可生成以上文件。
vmlinuz (内核文件) 、initrd.img则由光盘目录下的images/pxeboot/目录下的文件提供。
[[email protected] tftpboot]# ls /var/lib/tftpboot/ chain.c32 initrd.img mboot.c32 memdisk menu.c32 pxelinux.0 pxelinux.cfg vmlinuz
4>. 在/var/lib/tftpboot/目录下, 创建pxelinux.cfg目录
mkdir /var/lib/tftpboot/pxelinux.cfg vim /var/lib/tftpboot/pxelinux.cfg/default
5>. 启动tfpd.server服务
]# systemctl start tftp.socket
搭建ftp服务器, 提供安装源(类似于光盘)、kickstart文件。
1>. 搭建ftp-server服务器。
]# yum install -y vsftpd
2>. 将光盘文件挂载至/var/ftp/pub/Centos7目录下。
mount /dev/cdrom /var/ftp/pub/Centos7/
3>. 将kickstart文件复制到/var/ftp/pub/目录下。
cp centos7.cfg /var/ftp/pub/
4>. 启动ftp服务器。
]# systemctl start vsftpd
kickstart文件如何生成?
在图形化界面下安装system-config-kickstart工具包, 执行system-config-kickstart命令打开图形化配置界面。
如下:
客户端测试;(node2节点)
1>. 选择网络引导.
2>.
3>. 后面测试结果正确,可实现自动化安装。