在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在大规模安装服务器时,需要批量自动化方法来安装服务器,来减少日常的工作量. 图 PXE API架构图。(图片来源:PXE Specification Version 2.1) 上图启动流程说明如下: 复制代码 代码如下:[root@linux]# cat /etc/dhcpd.conf ddns-update-style interim; allow booting; #定义能够PXE启动 allow bootp; #定义支持bootp next-server 192.168.0.1; #TFTP Server的IP地址 filename "pxelinux.0"; #bootstrap 文件(NBP) default-lease-time 1800; max-lease-time 7200; ping-check true; option domain-name-servers 192.168.0.1; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.128 192.168.0.220; option routers 192.168.0.1; option broadcast-address 192.168.0.255; } 注意:在 /etc/dhcpd.conf 配置文件中 filename "pxelinux.0"; 文件目录是相对于 tftp 的根目录(默认是 /tftpboot), 所以文件的绝对路径就是: /tftpboot/pxelinux.0";当然也可以指定为其它的路径. 配置完成后,重启DHCP服务,并将它设为开机自启动 复制代码 代码如下:[root@linux]# /etc/init.d/dhcpd start 启动 dhcpd: [确定] [root@linux]# chkconfig --level 35 dhcpd on 3.2. 安装配置TFTP服务器 在PXE引导过程中,PXE Client 使用TFTP协议从TFTP服务器下载bootstrap文件并执行. 请确认系统中安装 tftp-server 软件包 配置tftp服务,tftp 服务由xinetd服务管理 编辑 /etc/xinetd.d/tftp 文件,将 disable = yes 改为:disable = no .配置文件内容如下: 复制代码 代码如下:[root@linux]# cat /etc/xinetd.d/tftp # default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. # default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } 注意:TFTP服务器的根目录是 /tftpboot,配置完成后重启xinetd服务,使TFTP服务器生效. 复制代码 代码如下:[root@linux]# /etc/init.d/xinetd restart bootstrap 文件配置 (NBP),这里使用 pxelinux.0 bootstrap文件由syslinux软件包提供,我们只要安装了syslinux,将 pxelinux.0 这个文件复制到 /tftpboot 目录即可: 复制代码 代码如下:[root@linux]# rpm -ql syslinux | grep "pxelinux.0" /usr/lib/syslinux/pxelinux.0 [root@linux]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/ 配置 pxelinux.0(NBP) 使用的配置文件 接下来创建/tftpboot/pxelinux.cfg/ 目录,该目录用于存放客户端的配置文件 复制代码 代码如下:[root@linux]# mkdir /tftpboot/pxelinux.cfg 默认配置文件default,文件内容如下、 复制代码 代码如下:[root@linux]# cat /tftpboot/pxelinux.cfg/default default linux # 默认启动的是 'label linux' 中标记的启动内核 prompt 1 # 显示 'boot: ' 提示符 timeout 60 # 等待超时时间,单位为 1/10 秒,超时后自动启动 默认指定的label display boot.msg # 显示boot.msg的内容,文件路径是相对tftp server 的根目录(默认 /tftpboot),所以boot.msg文件绝对路径在 /tftpboot/boot.msg . F1 boot.msg # 按下'F1' 键后显示的文件 F2 options.msg F3 general.msg F4 param.msg F5 rescue.msg label 1 # 'label' 指定你在 'boot:' 提示符下输入的关键字。 kernel linux/rh44-x86-32/vmlinuz append initrd=linux/rh44-x86-32/initrd.img ramdisk_size=8192 ks=http://install.test.com/conf/ks_module.cfg ksdevice=link label 2 kernel linux/rh44-x86-64/vmlinuz append initrd=linux/rh44-x86-64/initrd.img ramdisk_size=8192 ks=http://install.test.com/conf/ks_module.cfg ksdevice=link label 3 kernel linux/rh46-x86-64/vmlinuz append initrd=linux/rh46-x86-64/initrd.img ramdisk_size=8192 ks=http://install.test.com/conf/ks_module.cfg ksdevice=link label 4 kernel linux/rh46-x86-32/vmlinuz append initrd=linux/rh46-x86-32/initrd.img ramdisk_size=8192 ks=http://install.test.com/conf/ks_module.cfg ksdevice=link label 5 kernel image/linux/rh38-x86-32/vmlinuz append initrd=image/linux/rh38-x86-32/initrd.img ramdisk_size=8192 ks=http://install.test.com/conf/ks_module.cfg ksdevice=link label 6 kernel linux/rh38-x86-64/vmlinuz append initrd=linux/rh38-x86-64/initrd.img ramdisk_size=8192 ks=http://install.test.com/conf/ks_module.cfg ksdevice=link 注意事项: 默认 pxelinux.0 和 pxelinux.cfg 一定要在同一个目录下 3.3. pxelinx.0(NBP)程序配置文件搜索顺序 由于多个客户端可以从一个PXE服务器引导,PXE引导映像使用了一个复杂的配置文件搜索方式来查找针对客户机的配置文件. 假设 客户端服务器的网卡的MAC地址为 88:99:AA:BB:CC:DD ,对应的IP地址为192.168.1.195,那么客户端的pxelinux.0 程序 搜索顺序如下: 首先以MAC地址为文件名匹配的配置文件,如果不存在,继续查找. 其次以IP地址来查找.根据IP地址16进制命名的配置文件查找,从小范围到打大分为查找(子网掩码由小到大),如果不存在,继续查找. 最后尝试default文件 总体来说,pxelinux.0 搜索的文件的顺序是(可以通过tcpdum得到结果): 复制代码 代码如下:/tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd /tftpboot/pxelinux.cfg/C0A801C3 /tftpboot/pxelinux.cfg/C0A801C /tftpboot/pxelinux.cfg/C0A801 /tftpboot/pxelinux.cfg/C0A80 /tftpboot/pxelinux.cfg/C0A8 /tftpboot/pxelinux.cfg/C0A /tftpboot/pxelinux.cfg/C0 /tftpboot/pxelinux.cfg/C /tftpboot/pxelinux.cfg/default 4. 总结(Summary) |
请发表评论