• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 新聞 > 文章精選 >
     首頁(yè) > 新聞 > 文章精選 >

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

    2017-08-16 11:09:36   作者:Jonathan Zhang    來(lái)源: 開(kāi)源云中文社區   評論:0  點(diǎn)擊:


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

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 英德市| 金昌市| 抚远县| 虎林市| 焦作市| 乌拉特后旗| 松溪县| 佛山市| 宜兰县| 嘉兴市| 若羌县| 新疆| 呼伦贝尔市| 江山市| 龙陵县| 勃利县| 宝鸡市| 卢龙县| 正安县| 泌阳县| 金乡县| 嘉善县| 丹巴县| 扬中市| 建阳市| 寻甸| 西和县| 阳江市| 宁南县| 尚志市| 新河县| 同心县| 泰兴市| 贡嘎县| 常宁市| 巴林左旗| 玉门市| 长子县| 射阳县| 南平市| 冷水江市| http://444 http://444 http://444 http://444 http://444 http://444