PXE实现无人值守批量安装系统
什么是PXE?
PXE 的作用就像是在网卡上 ROM 里的一小小操作系统,它通过一个标准 API 把自已的网络引导功能提供给系统的 BIOS,就可以通过网络启动 linux;PXE 网络引导过程:一台主机广播一个设置了 PXE 选项的 DHCP“发现”请求,然后一台 DHCP 服务器用一个包含有 PXE 选项的 DHCP 包来响应它(引导服务器的 IP 地址和引导文件的名字)。客户机通过 TFTP 下载它的引导文件,然后执行这个引导文件。
为什么要使用PXE?
从网络引导系统的做法可以不必从硬盘、软盘或者 CD-ROM 光盘,而是完全通过网络来引导一台计算机。这对于安装来说很方便,因为它意味着你可以坐在桌子旁边,不必走到机器那里插入 CD-ROM 光盘或者软盘,就可以从网络上引导位于别处的一台机器
PXE的工作过程
1、网卡里有内置的dhcp客户端程序和tftp客户端程序,当把网卡当做第一顺序启动时,会**pxe功能,客户端基于dhcp尝试发起广播请求(端口:67);
2、当dhcp服务器收到请求后给它分配一个地址以及网关等各种网络属性进行配置;dhcp服务器还可以告诉网卡,网络中有tftp文件服务器,指令是next-server指定要找的tftp服务器,并且告诉网卡下载tftp服务器里的pxelinux.0(类似于bootloader提供引导界面);
3、客户端访问tftp服务器下载pxelinux.0并执行;
4、客户端后续下载内核和安装文件。
自动化安装之前的准备工作
下载dhcp,httpd,syslinux,tftp-server,system-config-kickstart
dhcp 分配ip给客户端
httpd 安装源共享服务,读取ks.cfg文件
syslinux 获得pxelinux.0文件安装包
tftp-server 提供tftp协议的服务
system-config-kickstart 自动应答脚本制作工具
具体步骤
首先配置dhcp服务器
然后,开启http服务,部署共享yum源,并关闭防火墙
开启tftp服务(7.3版本虚拟机可以直接开启,7.0版本不行)
7.3版本:
7.0版本:
无法直接开启tftp服务,我们需要安装xinetd,并修改/etc/xinetd.d/tftp
中,将disable改为no,才能安装
找到tftp-server安装包的安装路径/var/lib/tftboot,然后,复制文件到tftpboot下。其中,isolinux目录下的所有文件是内核镜像以及文件系统镜像,目的是让客户端主机在pxe的引导下知道自己内核的安装信息,pxelinux.0目的是让客户端主机在得到ip,网关,子网掩码等信息之后让pxe引导他下一步去哪里。创建pxelinux.cfg目录的原因是他是pxelinux.0的配置目录,创建pxe默认的读取文件default,将isolinux.cfg的文件复制给他
编写自动应答脚本,并将该脚本保存到/var/www/html上
保存到/var/ww/html
进入ks.cfg中编辑
用ksvalidator ks.cfg 检测自动应答脚本中有没有语法错误
修改/var/lib/tftpboot/default文件下默认的配置信息
quiet 开机时隐藏信息
/var/lib/tftpboot/default下的配置信息有:
时间
标题,安装源等
测试
打开一台任意虚拟机,将开机启动方式改为网卡启动
自动获取的安装信息