聲明:
本博客歡迎轉載,但請保留原作者信息!
作者:姜飛
團隊:華爲杭州OpenStack團隊
我們知道當前ironic的deploy模塊是通過打開一個iSCSI設備,ironic-conductro來OS的鏡像文件寫到iSCSI的設備上。
ironic-python-agent 認爲deploy還可以直接訪問硬件,提供以下功能:
- 磁盤格式化
- 磁盤分區
- 安裝OS( Bootloaders, OS)
- 固件升級
- raid配置
ironic-python-agent的總體思路,引用官方的架構圖:
最開始使用的是iscsi的流程是這樣的
新的流程是:
當前ironic python agent 進行硬件能力自發現的流程如下:
最新的代碼流程上使用的ironic的POST 請求
自發現請求的URL是:/v1/drivers/{driver}/vendor_passthru/lookup
心跳請求的URL是: /v1/nodes/{uuid}/vendor_passthru/heartbeat 此處的uuid 是自發現節點上報給IRONIC後,返回給ironic python agent的node 的uuid
那我們來看下如何製作ironic-python-agent的鏡像, ironic python agent 使用docker + coreos ,是當前很火的一個技術。
ironic python agent 提供了imagebuild目錄:
cd ~/ironic-python-agent/imagebuild/coreos
pip install -r requirements.txt
make
這裏的make執行的時候會執行2個步驟
make docker
make coreos
環境操作:
HOSTOS的環境 ubuntu14.04
安裝docker
apt-get install docker.io
service docker.io status #查看docker的服務狀態
ln -sf /usr/bin/docker.io /usr/local/bin/docker #創建命令行docker
安裝完docker後,還要執行 pip install -r requirements.txt
docker的版本一定要支持docker build 這個子命令,要不然會報錯的。提示:
[root@localhost coreos]# make
./docker_build.bash
.................
make: *** [docker] Error 1
make成功後,需要鏡像文件放置到tftp服務器,作爲PXE的deploy鏡像使用。