AMI基于Ubuntu 18.04的AWS镜像没有网络接口。

我在基于标准的AWS Ubuntu 18.04服务器镜像创建AMI时遇到了问题。这个问题在Ubuntu 16.04上没有出现过。
当我启动一个标准的AWS Ubuntu 18.04镜像并创建一个新的AMI,而不对镜像进行任何更改时,使用这个新的AMI来启动另一个实例时,我没有任何问题。
然而,如果我只是运行以下命令:
sudo apt update
sudo apt install ubuntu-desktop

然后创建一个新的AMI并使用它来启动一个新的实例,嘭,没有网络接口,无论我尝试启动哪种类型的实例。通常应该出现一个'ens3'或'eth0'网络接口。

我将问题缩小到可能与新的netplan网络处理程序有关,它可能被突然安装的ubuntu-desktop所干扰,并且可能与NetworkManager产生了不良的交互作用。

对于这种行为可能的原因有什么想法吗?

更新

ubuntu@ip-172-31-13-58:~$ ls -al /etc/netplan/
total 12
drwxr-xr-x  2 root root 4096 Jun 19 04:10 .
drwxr-xr-x 88 root root 4096 Jun 19 04:10 ..
-rw-r--r--  1 root root  473 Jun 19 04:10 50-cloud-init.yaml
ubuntu@ip-172-31-13-58:~$ cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
        ens3:
            dhcp4: true
            match:
                macaddress: 02:7a:e7:bc:e8:c8
            set-name: ens3
ubuntu@ip-172-31-13-58:~$ ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9001
        inet 172.31.13.58  netmask 255.255.240.0  broadcast 172.31.15.255
        inet6 fe80::7a:e7ff:febc:e8c8  prefixlen 64  scopeid 0x20<link>
        ether 02:7a:e7:bc:e8:c8  txqueuelen 1000  (Ethernet)
        RX packets 692  bytes 665816 (665.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 366  bytes 41639 (41.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 184  bytes 14306 (14.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 184  bytes 14306 (14.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

请编辑您的问题,添加终端命令的结果:ls /etc/netplan,还有:cat /etc/netplan/*.yaml,最后是:ifconfig - chili555
请查看我上面更新的帖子。输出当然取决于AWS实例类型,因为'ens3'很可能是'eth0'。此文件由cloud-init在引导时创建,一旦从AWS提取了元数据。当然,基于新创建的AMI的另一个实例上看起来像什么,我无法告诉您,因为它缺少网络接口。 - user4786142
根据最新创建的AMI,我无法告诉你另一个实例的外观如何。所以上述结果不是来自你遇到问题的那个实例? - chili555
不,它们不是。cloud-init应该创建这个yaml文件,但由于某种原因,来自ubuntu-update的软件包和/或设置会对本来完全正常的设置造成破坏。 - user4786142
安装ubuntu-desktop可能会安装Network Manager。服务器和Network Manager的netplan配置完全不同。我怀疑这是潜在的问题。没有诊断,很难修复。Network Manager正在运行吗?ps aux | grep etwork你想通过netplan的yaml文件处理故障实例的网络连接,还是通过点击Network Manager图标来连接? - chili555
那是我最初的一个想法。我禁用并隐藏了(因为它是由multi-user.target所需)NetworkManager,并清除了该包。可惜,它还是不起作用。你说得对,没有访问实例的情况下很难理解发生了什么。 - user4786142
如果你没有物理访问权限,而是依赖于SSH和FTP,我不确定桌面环境能提供什么帮助。 - chili555
没错。不过这并不是问题的关键。问题在于18.04版本出现了一些错误,需要进行修正。你知道应该向哪里报告这个问题吗? - user4786142
我不确定发布版本有什么问题,因为在添加ubuntu-desktop之前它都能正常工作。无论如何,您可以在这里报告错误:https://bugs.launchpad.net/ - chili555
1个回答

我遇到了同样的问题。原来是`ifupdown`软件包出了问题。只需将其移除(`apt purge ifupdown`)即可解决这个问题。