结合anaconda-ks.cfg安装配置文件和system-config-kickstart配置工具可以定制出特定服务器的安装ks文件,不过不同功能的服务器众多的ks配置文件该如何对用起来呢?是特定的主机可以识别相应的ks配置文件而不出现错误呢?这个就要说说位于tftpboot文件夹下的pxelinux.cfg的作用,这个pxelinux.cfg文件夹就是根据主机的MAC地址对用的配置文件名称识别具体的主机,从而实现特定主机使用相应的ks配置文件完成PXE的安装及系统的配置。
默认PXE配置写入/tftpboot/pxelinux.cfg/default中。当计算机在PXE期间接收到DHCP地址时,就用特定顺序搜索/tftpboot/pxelinux.cfg下的配置文件,第一个找到的文件被用作请求计算机的启动配置。搜索顺序的确定方法是:优先搜索以客户端机器的网卡地址命名配置文件(以'01'开头,用'-'(dash)分隔,用小写字母表示 MAC地址),并把请求DHCP地址转换成8个16进制数字,通过扩展子网对配置目录搜索第一个匹配的文件名(每一次搜索后从右到左删除一位数字),最后使用default这个默认的配置文件。这个是标准的解释不过是不是很麻烦还要进行一个进制转换的操作,不过计算机底层只是别这个没有办法的呀。
例如,网卡的MAC地址是88:99:AA:BB:CC:DD而IP地址是192.0.2.91,客户会按照如下顺序尝试配置文件名,其中IP地址为192.0.2.91,转换为十六进制数是C000025B
/ftfpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd
/ftfpboot/pxelinux.cfg/C000025B
/ftfpboot/pxelinux.cfg/C000025
/ftfpboot/pxelinux.cfg/C00002
/ftfpboot/pxelinux.cfg/C0000
/ftfpboot/pxelinux.cfg/C000
/ftfpboot/pxelinux.cfg/C00
/ftfpboot/pxelinux.cfg/C0
/ftfpboot/pxelinux.cfg/C
/ftfpboot/pxelinux.cfg/default
所以为了优先使每台安装的主机都匹配上ks文件就需要获取主机的MAC地址并定义好网卡地址命名配置文件。
网卡的MAC地址是88:99:AA:BB:CC:DD的网卡地址命名配置文件01-88-99-aa-bb-cc-dd
#cat 01-88-99-aa-bb-cc-dd
default linux
label linux
kernel vmlinuz
append ip=192.168.1.214 netmask=255.255.255.0 gateway=192.168.1.100 ks=http://192.168.1.100:/InstallOs/webserver1.cfg initrd=initrd.img
其中红色部分的作用对于一些较新型号的兼容网卡是很有意义的可以避免无法获取IP地址而终止安装过程的问题。
这样的主机安装和配置过程只需要一台PXElinux安装服务器就可以解决问题,安装之前需要获知的即使主机的MAC地址,这个应该很简单,商业的服务器的说明书中都是带有网卡MAC地址说明的,当然也是可以通过其他途径获得。而且这个PXE安装服务器可以便携使用到笔记本电脑的windows环境中,之需要将配置好的ks配置文件放置在使用Serve-U的ftp的目录下就可以修改pxelinux.cfg中的文件配置完成定制操作。
本文作为系列独辟蹊径网络安装的系列文章的第三篇,希望对Linux用户能够有所提示和启发,欢迎就相关问题进行交流。
作者简介:CU网友kns1024wh,目前从事Linux群集方面的具体工作,之前做过多年的IT技术支持、MCT讲师、及REDFLAG的技术合作,技术专长群集、unix主机、AD部署等,您可以通过电子邮件lvsheat@qq.com或者Chinaunix社区与他取得联系。