You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[{"ErrorCode":"INSTANCE_UNREACHABLE","ErrorMessage":"Failed to launch instance or failed to reach port 22. Provide an updated AMI that can be launched and provides access on the correct port [SSH port for Linux AMI. RDP and WinRM port for Windows AMI]. Learn more at: https://docs.aws.amazon.com/marketplace/latest/userguide/best-practices-for-building-your-amis.html#building-an-ami"}]
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=dhcp
DEVICE=ens5
HWADDR=02:42:95:63:e1:75
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
背景
openEuler-23.09创新版发布以后,通过EulerPublisher制作AMI镜像并手动向AWS Marketplace提交发布申请,制作的x86_64和aarch64两种架构版本的镜像均审核失败,提示失败原因如下:
初步方向是ssh连接失败,但是为什么失败的详细原因还不清楚,只能从控制台起实例观察一下,结果发现相关的系统日志(/var/log/messages)如下:
可以明显看到实例的网卡
ens5
没有拉起,故而无法发起通信,这也就能解释为什么ssh无法连接,但是为什么无法启动网卡,原因还不得而知。初步猜测
结合以上信息大概有个判断:cloud-init有问题或者其配置文件没有正确配置,原因如下:
yum install -y cloud-init
安装cloud-init这一个软件,在实例重启时就会复现网卡不能启动的问题,观察失败情况下的系统日志,发现如下细节:这一段日志显示了NetworkManager激活环回网口
lo
的过程,但是并没有激活ens5
的日志(ens5是真正与外部通信的网口)。cloud-init存在缺陷
问题定位
分析到此处,cloud-init的嫌疑已经非常大了,根因还需要进一步定位,在AWS控制台串口访问情况下,继续观察cloud-init的日志(/var/log/cloud-init.log),通过仔细对比发现cloud-init和网络配置的一条关联信息:
顺藤摸瓜,看看
/etc/sysconfig/network-scripts/ifcfg-ens5
修改后的内容:至此,基本上问题就找到——
NM_CONTROLLED=no
决定了ens5
网卡将不受NetworkManager控制,那么激活网卡过程也就将忽略ens5
,最终导致ens5
网卡未能启动。简单地将NM_CONTROLLED=no
改为NM_CONTROLLED=yes
之后,重启实例网卡正常拉起,AWS检查成功。根本原因
这个定位过程找到了cloud-init的维护组织,找了相关的开发人员,发现cloud-init的master代码分支删除了
cloud-init-20.4-nm-controlled.patch
补丁(PR见:https://gitee.com/src-openeuler/cloud-init/pulls/68/files),其中关键一步内容:这个补丁就是去掉了
NM_CONTROLLED=no
,使得网卡默认可以被NetworkManager控制,进而可以被激活;该补丁被删除后就产生了现在的问题。问题修复和规避
问题修复
23.09版本的cloud-init问题已经提issue进行修复,见https://gitee.com/src-openeuler/cloud-init/issues/I86OE1。
问题规避
尽管master分支已经修复了该问题,但创新版无update, 只能通过master源码编译或直接获取build件的方式获取正常的cloud-init来规避问题,yum源的cloud-init未进修复仍然不可用。
Beta Was this translation helpful? Give feedback.
All reactions