中文字幕在线视频第一页,黄色毛片在线看,日本爱爱网站,亚洲系列中文字幕一区二区

您當前的位置是:  首頁 > 新聞 > 文章精選 >
 首頁 > 新聞 > 文章精選 >

用Buildroot創(chuàng)建OpenStack Ironic部署鏡像

2017-08-16 11:09:36   作者:Jonathan Zhang    來源: 開源云中文社區(qū)   評論:0  點擊:


  Ironic是一個OpenStack項目,它提供裸機(而不是虛擬機)。
  一個稱為Ironic Python Agent(IPA)的工具用于控制和配置這些物理節(jié)點,執(zhí)行擦除機器和將鏡像寫入磁盤等任務。這是通過引導自定義的Linux內核和運行IPA并連接到Ironic Conductor的initramfs鏡像來完成的。
  Ironic項目通過Disk Image Builder支持幾個不同的鏡像構建器,包括CoreOS、TinyCore等。
  然而,這些鏡像構建器都有限制,例如,它們需要root權限,它們的大小都是幾百兆字節(jié)(除了TinyCore)。TinyCore的缺點之一是硬件支持有限,雖然它不在生產(chǎn)中使用,但它被用于OpenStack門控測試(在具有大約300MB RAM的虛擬機中啟動)。
  大型部署鏡像意味著節(jié)點的配置時間較長,因此筆者開始創(chuàng)建一個小型、可定制的鏡像,以解決其他現(xiàn)有鏡像的問題。
  Buildroot
  筆者選擇使用Buildroot,這是一個大家都認為易于使用的、構建嵌入式Linux鏡像的工具。
  到目前為止,它作為一個概念驗證是相當成功的。
  Linux內核是2MB
  壓縮的initramfs映像是25MB
  通過OpenStack Ironic門控測試
  高度可定制(多虧了Buildroot)
  可以通過menuconfig系統(tǒng)進行定制,類似于Linux內核。
  Buildroot menuconfig
  源代碼
  用于構建鏡像的所有源代碼都位于ipa-buildroot存儲庫中筆者的GitHub帳戶(https://github.com/csmart/ipa-buildroot)上。筆者還寫了一些文檔,用于引導你完成整個構建和定制過程。
  ipa-buildroot存儲庫包含IPA特定的Buildroot配置,并跟蹤Git子模塊中的上游Buildroot。通過使用上游Buildroot和外部存儲庫,IPA Buildroot配置作為常規(guī)Buildroot構建的選項出現(xiàn)。
  在Buildroot 默認配置列表中的IPA
  Buildroot將編譯內核和initramfs,然后發(fā)布構建腳本克隆Ironic Python Agent存儲庫并為目標創(chuàng)建Python Wheels。
  以下最終鏡像將在。/output/images下找到:
  • bzImage(內核)
  • rootfs.cpio.xz(ramdisk)
  • rootfs.iso9660(ISO鏡像)
  這些文件可以上傳到Glance與Ironic一起使用。
  自定義
  Buildroot允許你自定義構建參數(shù)、目標initramfs和Linux內核。這樣做也很簡單,每次運行make時,它會回到你離開的地方,重新創(chuàng)建你的鏡像。
  該構建腳本直接獲取Ironic Python Agent,使得構建高度靈活地獲取要使用的確切版本。你可以通過在Buildroot的menuconfig中自定義設置來指定Ironic Python Agent和需求存儲庫的位置和分支。
  設置Ironic Python Agent和Requirement位置、Git版本
  筆者從頭開始(使用tinyconfig)創(chuàng)建了內核配置,并故意努力實現(xiàn)平衡大小和功能。應該在大多數(shù)基于Intel的計算機(BIOS和UEFI)上引導,但對硬盤和以太網(wǎng)控制器等硬件的支持被故意限制。我們的目標是從小開始,再根據(jù)需要增加更多支持,因此可能需要修改才能在你的硬件上工作。
  使用imagebuild腳本自動構建
  手動進行構建是很好的,因為它有助于了解拼接過程,但是手動涉及的更多。
  Ionic Python Agent(IPA)repo有一些鏡像創(chuàng)建腳本,這使得構建CoreOS和TinyCore鏡像非常簡單。筆者現(xiàn)在提供一些補丁,來增加對創(chuàng)建Buildroot鏡像的支持。
  這些補丁包含幾個腳本,其中包括手動構建方法和一個Makefile來將它們整合在一起。只有install-deps.sh腳本需要root權限,而且如果它檢測到?jīng)]有依賴關系,其他所有Buildroot任務將作為非特權用戶運行。這是Buildroot方法的一大優(yōu)點!
  再次強調,筆者已經(jīng)在repo中包含了文檔(https://github.com/csmart/ironic-python-agent/tree/buildroot/imagebuild/buildroot#buildroot-ironic-python-agent),所以請參閱有關如何構建和自定義鏡像的更多細節(jié)。但總的來說,做這個是很簡單的:
  這些操作將自動執(zhí)行以下任務:
  • 獲取Buildroot Git存儲庫
  • 加載默認的IPA Buildroot配置
  • 下載并驗證所有源代碼
  • 構建工具鏈
  使用工具鏈構建:
  • 系統(tǒng)庫和軟件包
  • Linux內核
  • 用于IPA和依賴關系的Python Wheels
  創(chuàng)建內核、initramfs和ISO鏡像
  默認配置指向上游IPA Git存儲庫,但是你可以將其更改為指向任何你喜歡的repo和提交。 例如,如果你正在處理IPA,你可以將Buildroot指向當?shù)氐腉it repo,然后構建并引導該鏡像進行測試。
  幫助
  • 要查看可用的Makefile目標,只需運行幫助目標:
  • make help
  如果你輸入-help選項,那么shell腳本也可以提供幫助:
 
【免責聲明】本文僅代表作者本人觀點,與CTI論壇無關。CTI論壇對文中陳述、觀點判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

專題

灵山县| 绥中县| 正安县| 四会市| 探索| 囊谦县| 五华县| 南宁市| 南投市| 枣强县| 札达县| 梁平县| 隆林| 阜康市| 商城县| 新安县| 屏边| 厦门市| 民丰县| 永春县| 广东省| 土默特左旗| 定南县| 香河县| 永兴县| 榆林市| 彰武县| 浦县| 左贡县| 辽宁省| 西华县| 遂昌县| 益阳市| 益阳市| 曲阳县| 额济纳旗| 宜春市| 蚌埠市| 大洼县| 西城区| 大方县|