Centos7
nmcli 在 Kickstart 腳本中不起作用
我在 Kickstart 安裝後腳本中有以下命令:
firewall-offline-cmd --new-zone=management firewall-offline-cmd --zone=management --add-service=ssh --add-service=snmp firewall-offline-cmd --zone=management --change-interface=eth1 nmcli device modify eth1 connection.zone management
從我的閱讀來看,當 NetworkManager 在圖片中時似乎
firewalld
無法進行這些更改,因此我在nmcli
命令中添加了更改區域。但它沒有生效。安裝完成並重新啟動伺服器後,界面仍保留在預設區域中。之後我可以執行該nmcli
命令,它將生效。除了這篇文章之外,我在網上找不到任何關於這個問題的資訊,但它在付費牆後面。
我也遇到過這個問題。我用這個 hack 解決了這個問題:
echo 'ZONE=management' >> /etc/sysconfig/network-scripts/ifcfg-eth1
我更喜歡更優雅的東西,但暫時已經解決了。
長話短說:“不要使用它,它不起作用”
解析度
- 在安裝過程中,甚至 %post 腳本執行過程中,很多鎖都沒有啟用,還有很多必需的服務沒有執行。該環境是 anaconda 執行環境,當您將其 chroot 到已安裝的機器時,相同的執行環境與偽文件系統的綁定選項一起使用。
- 由於在 anaconda 執行期間已安裝的設置中缺少此類設置,因此 nmcli 執行存在問題。並非所有東西都可以在 kickstart 的 %post 部分執行,它可以在功能齊全的執行機器上執行,因此可能會遇到這個問題。
- 唯一更好的方法是在機器重新啟動並在安裝後完全執行後執行它。如果只想執行一次,也可以將其放入某種首次啟動邏輯中。
所以 nmcli 是網路配置自動化的好工具。您可以將 is 用於各種目的,安裝除外。