用 config drive 配置網絡 - 每天5分鍾玩轉 OpenStack(173)


上一節最后問了大家一個問題:如果 subnet 沒有開 DHCP,會是怎樣一個情況?

在其他條件不變的情況下,cloud-init 依然會完成那 3 個步驟,也就是說網卡還是會被配置成 dhcp 模式,只是最后網卡沒辦法獲得 IP 而已。

不開 DHCP 也是一個常見的場景,為了讓 instance 的網卡在這種情況下也能夠被正確配置,我們需要借助 config drive,下面開始實踐。

在計算節點 /etc/nova/nova.conf 中需要添加一個配置,然后重啟 nova-compute 服務。

[DEFAULT]

flat_injected = True

flat_injected 的作用是讓 config drive 能夠在 instance 啟動時將網絡配置信息動態注入到操作系統中。

當前網絡的 DHCP 已經關閉。

instance 部署時指定使用 config drive。

Neutron 為 instance 分配的 IP 為 18.18.18.5

instance 啟動后登錄系統,ip a 驗證 IP 已經成功配置,說明 config drive 起作用了。

重要的是弄懂 18.18.18.5 這個 IP 是如何配置上去的。打開 /var/log/cloud-init.log,分析如下:

① 掃描出 instance 中的所有網卡,這一步與不使用 config drive 的情況完全一樣。

② 獲取該網卡的配置信息。 日志顯示配置信息是從 ds 獲取。ds 是 datasource 的縮寫,在這里指的就是 config drive。在不使用 config drive 的情況下采用的是 fallback 配置。網卡配置信息記錄在 config drive openstack/latest/network_data.json 文件里,內容如下:

③ 將配置信息寫入 /etc/network/interfaces.d/50-cloud-init.cfg,內容為:

可以看到 IP 以 static 方式配置。

總結一下:

1. 在沒有使用 config drive 的情況下,cloud-init 只會配置第一塊網卡,且設置為 dhcp 模式,所以:

① 如果 instance 只有一塊網卡,且啟用了 DHCP,網卡能夠被正常拉起。

② 如果 instance 有多塊網卡,第一塊會嘗試以 dhcp 方式拉起,其他網卡不作處理。

2. 使用 config drive 的情況下,無論是否啟用 DHCP,所有網卡都能被正確配置且成功拉起(如果 dhcp 網卡 >= 2,CentOS 還是有問題,可能跟目前所用的 cloud-init 版本較低有關)。

3. 如果可能,盡量使用 config drive。

討論完網絡配置這個最重要的主題,下一節我們來看看 cloud-init 的其他典型應用:設置 hostanme,設置用戶初始密碼,安裝軟件等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM