最近的工作涉及到服務器自動安裝和網(wǎng)絡部署操作系統(tǒng),然后使用 ansible 和 saltsatck 進行配置并安裝 openstack 。

難點在于服務器的自動安裝,由于不單只是通過 PXE 安裝服務器,還需要能夠安裝時進行分區(qū)、配置網(wǎng)卡等工作,因此需要在開始安裝前,必須先收集服務器的硬件信息。

調研了一下目前的開源項目中,提供此類功能的有 tinycorelinux 、 puppet razor-el-mk 可做類似的工作。tinycorelinux 是個很好的工具,整個系統(tǒng)在 PXE 之后在內存中執(zhí)行,可在里面加上簡單的 agent 完成任務報告的工作;razor 是 puppet 綁定在一起用的,el-mk 基于 centos ,它在里面裝了 razor 的 agent,使用 facter 進行硬件信息收集。

這些方案的基本思路都是相通的,首先通過 PXE 下載 microkernel ,然后直接在內存中執(zhí)行,啟動網(wǎng)卡,運行 agent 并向服務器匯報信息,并接收來自服務器的命令。基本的技術原理都是 PXE + linux initramfs ,根據(jù)不同的需要向 initramfs 中加硬件驅動。

仔細研究了一下之后,發(fā)現(xiàn)用 debootstrap + busybox 工具做這樣的小系統(tǒng)會更加簡單,有以下的優(yōu)點:

  1. debootstrap 生成的小 ubuntu 能方便使用 apt 安裝額外的工具

  2. 可直接把驅動模塊拷貝到小鏡像內使用

  3. 定制腳本非常簡單容易

整個小系統(tǒng)在不安裝額外的軟件和內核模塊的情況下,為 100 M 左右,并可加入 busybox 后裁減到 40-50 M(包含完整的基礎庫)。在安裝了 python3 (完整的 python3 ),可裁減到 110 M 左右。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式