最近的工作涉及到服務(wù)器自動安裝和網(wǎng)絡(luò)部署操作系統(tǒng),然后使用 ansible 和 saltsatck 進(jìn)行配置并安裝 openstack 。
難點(diǎn)在于服務(wù)器的自動安裝,由于不單只是通過 PXE 安裝服務(wù)器,還需要能夠安裝時(shí)進(jìn)行分區(qū)、配置網(wǎng)卡等工作,因此需要在開始安裝前,必須先收集服務(wù)器的硬件信息。
調(diào)研了一下目前的開源項(xiàng)目中,提供此類功能的有 tinycorelinux 、 puppet razor-el-mk 可做類似的工作。tinycorelinux 是個(gè)很好的工具,整個(gè)系統(tǒng)在 PXE 之后在內(nèi)存中執(zhí)行,可在里面加上簡單的 agent 完成任務(wù)報(bào)告的工作;razor 是 puppet 綁定在一起用的,el-mk 基于 centos ,它在里面裝了 razor 的 agent,使用 facter 進(jìn)行硬件信息收集。
這些方案的基本思路都是相通的,首先通過 PXE 下載 microkernel ,然后直接在內(nèi)存中執(zhí)行,啟動網(wǎng)卡,運(yùn)行 agent 并向服務(wù)器匯報(bào)信息,并接收來自服務(wù)器的命令?;镜募夹g(shù)原理都是 PXE + linux initramfs ,根據(jù)不同的需要向 initramfs 中加硬件驅(qū)動。
仔細(xì)研究了一下之后,發(fā)現(xiàn)用 debootstrap + busybox 工具做這樣的小系統(tǒng)會更加簡單,有以下的優(yōu)點(diǎn):
debootstrap 生成的小 ubuntu 能方便使用 apt 安裝額外的工具
可直接把驅(qū)動模塊拷貝到小鏡像內(nèi)使用
定制腳本非常簡單容易
整個(gè)小系統(tǒng)在不安裝額外的軟件和內(nèi)核模塊的情況下,為 100 M 左右,并可加入 busybox 后裁減到 40-50 M(包含完整的基礎(chǔ)庫)。在安裝了 python3 (完整的 python3 ),可裁減到 110 M 左右。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26