PXE实践

本篇只以记录个人部署pxe过程中所遇问题,至于原理,只做部分简单说明。

pxe部署必要软件:

sysLinux (用于提供引导中所必备文件)

tftp(用于提供存放vmlinuz,initrd,sysLinux.0等引导类文件)

dhcp(用于自动获取IP包括指明去哪个主机获取sysLinux.0文件)

最后还需要一个web或者ftp服务,已提供系统安装中所使用的yum仓库。

另外还需要网卡中内嵌了支持pxe的ROM芯片,现在这一条基本不用担心,都支持。

现在可以找一台虚拟机安装上所需软件。

blob.png

安装上述软件,这里我准备使用的是web服务。并且一台主机直接提供所有服务。

然后我们先配置dhcp

blob.png

先将DHCP的实例配置文件覆盖配置文件,安装过后配置文件本身是空的!

然后我们在做下修改

blob.png

这里我们只需要自己添加这样一段就够了,毕竟我们不是真的需要dhcp服务,只要分配出去的ip能和我们提供tftp,web服务通信即可,其他的我们都不用管。

接着我们进入tftp的根目录,这里我发现上面安装的时候装错了,装成tftp的客户端了,我们需要的是tftp-server,重新安装一个tftp-server。

blob.png

进入此目录接着复制需要的文件至此。

blob.png

接着创建一个目录,以提供pxeLinux启动时读取选项界面。

然后我们进入此目录创建一个为default的文件,pxeLinux.0是读取这个文件的,所以必须要以这个名字命名!!!!

blob.png

提供类似此种配置,默认读取menu.c32提供的界面,选取时间为10秒,超时时长为30秒 标题为 Centos 7 PXE Menu  标签为Linux, 选项是提供的字符串 testinstall Centos 7 x86_64  读取kernel的名称  yum安装仓库为web服务的centos7目录下,ks文件位置在web的根目录下叫centos7.cfg 。(这里虚拟机暂时是桥接的,过会我会配置为单主机,且地址配置为172.16.10.9)

接着我们将创建centos7目录 并将光盘挂载至目录

blob.png

然后我们需要准备一个ks配置文件,最方便的方式是用system-config-kickstart生成一个,但需要安装图形界面,这里我没准备,就准备直接更改一下家目录的annaconda文件。

先将文件拷贝至html目录下并改名为centos7.cfg

blob.png

在接着就可以改改配置文件了

blob.png

这里我主要增加了横线标出那一行,因为之前是通过光盘安装,这里我们要通过web服务安装,之前通过cdrom安装已经被我注释掉了,接着我们就可以启动服务,并且调整虚拟机了!

blob.png

dhcpd报错了 先看看报错什么吧

blob.png

好吧,我们应该要先调整虚拟机在启动dhcp,因为定义的172网段和真实的网段不同。

我们先测试下httpd和tftp

blob.png

blob.png

这里可以看到我们请求yum仓库是成功了,但是ks文件缺失败了,提示没权限,检查一下文件权限。

blob.png

发现确实权限问题,修改,在测试

blob.png

可以正常请求到文件内容了,接着测试下tftp

blob.png

我们正常登陆tftp服务并且下载了一个文件,至此,我们可以去修改虚拟机,启动dhcp了

blob.png

这里我已经指定了静态地址,并且把虚拟机已经调整。可以看到dhcp服务也正常启动了!接着我们就可以找一台主机启动测试了。

blob.png

blob.png

这里我找了个主机,并且把两台主机调整至同一个网段,并且把虚拟机带的dhcp服务已经关闭,可以开机了!!

blob.png

blob.png

正确的获得了地址,并且我们刚才自己添加的选项也已经再此!tab键也可以像grub一样看到具体的配置 至此,后面的就不演示了,ks文件根据自己实际需要调整。

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!