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
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镜像产品时,第一步就是要导入openEuler镜像。私有镜像导入过程分为
正常
和强制
两种方式,区别在于正常
方式需要检查cloud-init是否安装,而强制
方式则不需要。由于cloud-init作为云上主机初始化的一个重要组件,进行正常的功能检查是非常有必要的。目前,openEuler官方发布的虚机镜像没有预置cloud-init,只能自己制作镜像以满足要求。刚开始选择diskimage-builder来定制具有cloud-init的镜像,成功发布了openEuler-22.03-LTS-SP1的x86版本。但是因为有段时间arm的机器总是不能成功使用diskimage-builder构建出镜像,所以openEuler arm镜像发布到腾讯云搁置了几天。后面为了简单起见,直接通过EulerPublisher使用chroot技术直接安装cloud-init得到了arm版本的镜像,以
正常
方式导入腾讯云,接着就是持续的导入失败,提示CloudinitNotInstalled
。原因分析
1. 排查和对比测试
1)按照腾讯云提示验证
按照上述方式验证后,发现符合预期结果,所以腾讯云对cloud-init是否安装的校验规则到底是什么?
2)从CentOS和Ubuntu社区获取各自的arm版本镜像,校验无误之后以
正常
方式导入腾讯云,仍然提示CloudinitNotInstalled
,这个时候就开始有点怀疑是不是腾讯云不支持arm?2. 强制导入
提单咨询腾讯云,给的答复和官方文档一模一样,没有太多有用的价值,再次尝试之后感觉还是不靠谱。试了一下
强制
导入,然后创建实例,发现了一点问题——腾讯云的北京区没有arm主机?最后查了下,腾讯云2021年才支持首个arm云主机,而且国内貌似只有广州区有。回想之前的测试都是在北京区做的,会不会在导入镜像的时候校验过程根本没有成功创建arm实例才提示的是CloudinitNotInstalled
?切换云服务大区到广州区,然后重新上传并以
强制
方式导入arm镜像,选择arm云主机,启动实例,检查cloud-init日志,发现cloud-init在开机阶段成功运行了;删除日志重启后仍然显示cloud-init正常。3. 失败的可能原因和规避方式
目前实际上还不是很清楚腾讯云导入私有arm镜像提示
CloudinitNotInstalled
的根因是什么,但可以确定未必是cloud-init真的未安装,可能是导入过程通过创建x86云主机实例来校验、创建失败?如果反复验证已经安装cloud-init了,可以使用强制导入,并在腾讯云创建实例进行确认,暂时以此方法来规避。
Beta Was this translation helpful? Give feedback.
All reactions