问题背景:

       虚拟机系统:PVE

        操作系统:Centos 7.9 使用cloud-init初始化

        网络管理:NetworkManager(禁用netwrok)

问题现象:

       配置了几台虚拟机,但是其中有2台不能ssh连接,通过控制台查看,IP是通过DHCP获取的地址,并不是使用cloud-init初始化配置的IP地址,所以不能连接。尝试重启。问题依旧。

问题排查:        

       使用nmtui 查看网卡配置,发现有5个网卡配置。其中System eth*是使用Cloud-init配置的。另外2个配置不知道哪里来的。

继续查看,其中Wired connection2 在使用中。

我们的ssh使用的IP地址是配置在eth0上的,所以查看eth0的详细信息,发现网卡未使用System eth0配置,使用的是Wired connection2配置。

        排查message日志,发现服务启动的时候加载了ifcfg-eth0配置文件。那Wired connection2配置到底哪里来的呢?对应的配置文件目录/etc/sysconfig/network-scripts/中并不存在多余的配置文件。继续排查日志。

最后查看了如下现象:

       1:NetworkManager发现了一个新设备ens18,添加了接口Wired connection2,并且自动生成配置,然后使用起来了。所以本地不存在Wired connection2配置文件。

       2:由于系统相关初始化,把ens18网卡重命名成了eth0了。

       3:所以eth0本身配置文件存在,但是生效的却不是ifcfg-eth0

解决方法:

       使用nmcli con delete 删除对应的配置。就发现eth0的配置文件生效了。并且重启也正确生效了。

问题根因:

        个人感觉应该是使用cloud-init制作虚拟机模板的使用,有一些问题。因为查看cloud-init的日志,明显能看到有关ens18设备相关的动作。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐