最近,一台虛擬機是從外網下載的,然后導入本地測試環境使用。
發現一個奇怪的問題:修改了 /etc/sysconfig/network-scripts/ifcfg-eth0 保存后,
重啟網絡服務( systemctl restart network)是有效的。但是重啟系統之后就失效了。
ifcfg-eth0內容被重置了。
嘗試了關閉自帶網絡管理工具,
systemctl stop NetworkManager
systemctl disable NetworkManager
無效。重啟后,ifcfg-eth0內容仍被重置。
打開這個文件后,頂部有一行注釋提示:
# Created by cloud-init on instance boot automatically, do not edit. # BOOTPROTO=dhcp DEVICE=eth0 HWADDR=fe:fc:fe:46:95:ba ONBOOT=yes TYPE=Ethernet USERCTL=no
好吧,找一找服務:
systemctl list-unit-files
發現了這4行,應該是和最下面一行有關:
cloud-config.service enabled cloud-final.service enabled cloud-init-local.service enabled cloud-init.service enabled
於是,上網搜了倆小時,嘗試過N次后,最終找到了某位大神給的正確答案:
在 /etc/cloud/cloud.cfg中添加內容,禁止 cloud-init服務接管網絡,如下圖所示:
network:
config:disabled
后續執行以下操作:清理,檢查cloud-init配置文件,再次檢查eth0配置,重啟測試。
cd /usr/lib/python2.7/site-packages/cloudinit/sources/ rm -rf __init__.pyc rm -rf __init__.pyo rm -rf /var/lib/cloud/* rm -rf /var/log/cloud-init* cloud-init init --local cat /etc/sysconfig/network-scripts/ifcfg-eth0 reboot