当前位置: 代码迷 >> 综合 >> drbl 深入研究
  详细解决方案

drbl 深入研究

热度:57   发布时间:2024-02-19 13:36:15.0

背景:

从2018年开始,由于工作和自身喜好,就开始研究pxe启动相关的东西。然后研究到了drbl 企鹅龙。 主要用与批量系统安装,母盘制作和还原等。下面来介绍一些硬知识。

 

企鹅龙drbl

百度也好,谷歌也好,drbl搜索出来的基本上都是安装之类的,很少有详细介绍原理之类的,估计是使用的人比较少吧。所以,带着以前的pxe基础去看了drbl的官方文档。

drbl原理和架构介绍  这里是drbl的官方说明

这个对pxe部分和default文件查询顺序做了详细的介绍,可以根据该来做dhcp+pxe对指定服务器的精细化控制

DRBL用戶端是使用PXELINUX來控制的,PXE開機的設定檔放在/tftpboot/nbi_img/pxelinux.cfg/目錄下,用戶端取得的設定檔會有優先順序,以下我們以PXELINUX 3.7x的版本為例。
以用戶端電腦的UUID是b8945908-d6a6-41a9-611d-74a6ab80b83d(註:這個UUID是來自PXE的stack裡面,有些BIOS並沒有提供正確的UUID,你有可能會得到全部是1的數值),網路卡MAC address是88:99:AA:BB:CC:DD,然後IP address是192.168.100.1。用戶端PXE開機時候會依序這樣的順序試著抓取設定檔:

/tftpboot/nbi_img/pxelinux.cfg/b8945908-d6a6-41a9-611d-74a6ab80b83d
/tftpboot/nbi_img/pxelinux.cfg/01-88-99-aa-bb-cc-dd
/tftpboot/nbi_img/pxelinux.cfg/C0A86401
/tftpboot/nbi_img/pxelinux.cfg/C0A8640
/tftpboot/nbi_img/pxelinux.cfg/C0A864
/tftpboot/nbi_img/pxelinux.cfg/C0A86
/tftpboot/nbi_img/pxelinux.cfg/C0A8
/tftpboot/nbi_img/pxelinux.cfg/C0A
/tftpboot/nbi_img/pxelinux.cfg/C0
/tftpboot/nbi_img/pxelinux.cfg/C
/tftpboot/nbi_img/pxelinux.cfg/default

也就是找尋的順序是: (1) UUID (2) MAC address (3) IP address (4) default。
其中Ethernet (ARP type 1)的MAC Address對應的檔名是在最前面有多一個"01-",而且原本的":"取代為"-",採用小寫字母。IP address使用的是16進位的表示方式,字母採用大寫。例如192.168.100.1是用C0A86401來表示。DRBL伺服器上有一個perl的檔案drbl-gethostip(取自PXELINUX),可以讓你做這樣的計算:

$/usr/share/drbl/bin/drbl-gethostip 192.168.100.1
C0A86401

因此如果你有需要針對某台用戶端來做特別的控制,例如設定該台電腦開機選單等,你可以在/tftpboot/nbi_img/pxelinux.cfg/下放置一個設定檔,不論依據UUID, MAC address或者IP address所對應的檔案都可以達到目的。 實做我們可以直接複製DRBL產生的default為設定檔給用戶端使用,例如我們控制用戶端192.168.100.1,以IP address方式控制,我們可以:

$cd /tftpboot/nbi_img/pxelinux.cfg/
$cp -f deafult C0A86401

然後修改C0A86401,將選單部份予以調整。

以下是干货文章,你与其再百度上找零散的资料,还不如看这些实打实的干货(过来人良心推荐),觉得收益匪浅

干货文章介绍: