在Linux中有多种的安装方式:HD、USB、CDROM、PXE及 远程管理卡等。在我们的系统运维的生涯中,经常要安装操作系统,然而我们维护的机器不是一两台而已,一般的企业服务器数量都在几十、几百、几千、甚至上万 台。这么多的机器,如果人工的一台一台去安装,那我们这些运维人员,可能要把大部分时间都花费在了安装系统上,所以,我们一般都会建立一个PXE服务器,通过网络来批量部署系统。
PXE服务器简介
PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
PXE启动原理
当计算机引导时,BIOS把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。
PXE远程装机的好处:
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
无人值守部署系统安装系统流程
1.部署PXE需要的环境:
首先在pxe服务器端需要有一个DHCP服务器,需要有tftp服务器和一个文件服务器,其中文件服务器可以是ftp,http,nfs等文件服务器,如果服务器性能好或者流量不是太大,这些服务器完全可以放在一台服务器上面。当然客户机的网卡需要支持PXE协议,且主板主持网络引导,并设置BIOS中允许从Network或LAN启动,现在的绝大部分的网卡已经支持这样的功能了。
2.PXE部署系统自动化安装流程
(1) 设置拥有pex功能的客户端主机开机启动项为网络启动,一般默认都此选项,如果没有可自行设置bios启动项
(2) 客户端开机之后进入网络启动,此时客户端没有IP地址需要发送广播报文(pxe网卡内置dhcp客户端程序),dhcp服务器相应客户端请求,分配给客户端相应的IP地址与掩码等信息
(3) 客户端得到IP地址之后,与tftp通信,下载pxelinux.0,default文件,根据default指定的vmlinuz,initrd.img启动系统内核,并下载指定的ks.cfg文件
(4) 根据ks.cfg文件去文件共享服务器(http/ftp/nfs)上面下载RPM包开始安装系统,注意此时的文件服务器是提供yum服务器的功能的。
各服务器的部署
1.tftp服务的安装与启用:
<1>安装tftp服务
[root@pxe-server ~]# yum install tftp-server.x86_64 -y
<2>启用tftp服务
TFTP服务默认由超级服务xinetd超级服务器进行管理,所以开启方式较为特殊
[root@pxe-server ~]# vim /etc/xinetd.d/tftp
14 disable = no ##将yes改为no
[root@pxe-server ~]# systemctl restart xinetd.service