1 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
實(shí)際上,PXELINUX帶有基于系統(tǒng)MAC地址的識(shí)別機(jī)制,并且可以相應(yīng)地定制配置。由于無(wú)論如何您都需要對(duì)裸機(jī)服務(wù)器進(jìn)行統(tǒng)計(jì)(端口安全有人嗎?;)),因此無(wú)論如何您都應(yīng)該知道裸機(jī)服務(wù)器上所有接口的 MAC 外觀。
您的目錄通常如下所示(路徑前綴可能不同)。
/srv/pxe/pxelinux.cfg/default
現(xiàn)在發(fā)生的情況是,您的系統(tǒng)啟動(dòng),發(fā)送 DHCP 請(qǐng)求并獲得包含 DHCP 選項(xiàng)“下一個(gè)服務(wù)器”和“文件名”的報(bào)價(jià)。當(dāng)系統(tǒng)選擇所述報(bào)價(jià)時(shí),它將連接到“下一個(gè)服務(wù)器”并請(qǐng)求“文件名”,通常為pxelinux.0
.?這是您的第一個(gè)潛在鉤子:編寫一個(gè) tftp 服務(wù)器來處理請(qǐng)求并注冊(cè)您的系統(tǒng)。
現(xiàn)在pxelinux.0
執(zhí)行,它會(huì)讀取上面的配置文件。但事情是這樣的:假設(shè)系統(tǒng)的 Mac 地址是23:67:33:5a:cc:e8
,文件
/srv/pxe/pxelinux.cfg/23-67-33-5a-cc-e8
存在,則將讀取此內(nèi)容。這是您的第二個(gè)鉤子:請(qǐng)求將由 tftp 記錄。
無(wú)論是否default
使用特定于系統(tǒng)的配置文件,基本上我們談?wù)摰氖?GRUB 配置文件。假設(shè)你使用 Kickstart 安裝系統(tǒng),它會(huì)看起來像這樣
default?linux prompt?0 timeout?1 label?linux ????????kernel?/images/yourdistro/vmlinuz ????????ipappend?2 ????????append?initrd=/images/yourdistro/initrd.img?console=ttyS0,115200
現(xiàn)在,事情是這樣的:您有多種可能性在啟動(dòng)時(shí)執(zhí)行自定義程序:
將可執(zhí)行文件的路徑附加到參數(shù)中
append
。按照慣例,內(nèi)核會(huì)將所有它不知道的參數(shù)發(fā)送到 pid 1。雖然我沒有測(cè)試 systemd 是否遵守約定并簡(jiǎn)單地依次執(zhí)行一個(gè)它不知道的參數(shù),但我假設(shè)也是如此。計(jì)劃任務(wù)。現(xiàn)在大多數(shù) cron 實(shí)現(xiàn)都支持
@boot
時(shí)間定義。init 系統(tǒng),無(wú)論是 systemd 還是 openrc 或者好的 SYSV init。
最后但并非最不重要的一點(diǎn)是如何配置機(jī)器。我強(qiáng)烈建議不要重新發(fā)明輪子。我在(閉源)項(xiàng)目中有非常相似的要求。我們使用 kickstart 進(jìn)行基本的系統(tǒng)安裝,并在重新啟動(dòng)到Ansible Tower后簡(jiǎn)單地執(zhí)行一個(gè) curl 命令,觸發(fā)更詳細(xì)的配置。由于我們有一個(gè)帶有 MAC 的 DHCP 服務(wù)器、為所述 MAC 保留的 IP 以及易于配置的主機(jī)名(dnsmasq、caugh、caugh),所以這不是什么大問題?;旧希覀兪謩?dòng)要做的就是注冊(cè) MAC 地址并分配 IP 和主機(jī)名,然后啟動(dòng)機(jī)器。
- 1 回答
- 0 關(guān)注
- 135 瀏覽
添加回答
舉報(bào)