Cloud-init连接出现问题时,如何排查?
问题描述
无法正常使用Cloud-init。
排查思路
您可以按照以下原因进行排查,如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。
可能原因 |
处理措施 |
---|---|
弹性云服务器未获取到IP |
解决方法请参考弹性云服务器未获取到IP。 |
链路本地地址169.254.169.254路由问题 |
解决方法请参考链路本地地址169.254.169.254路由问题。 |
弹性云服务器获取metadata请求失败 |
解决方法请参考弹性云服务器获取metadata请求失败。 |
无法登录或者无法完成非root用户的创建 |
检查/etc/cloud/cloud.cfg配置文件格式,参考无法登录或者无法完成非root用户的创建。 |
无法通过预先获得的密钥文件登录弹性云服务器(或无法获取弹性云服务器密码) |
重启弹性云服务器后重试解决。 |
弹性云服务器未获取到IP
检查弹性云服务器是否已经获取到IP地址。
如果没有获取到IP地址,请尝试执行获取命令:dhclient(不同的操作系统,获取DHCP地址的命令有稍微的差别,请按照弹性云服务器的操作系统,选择相应命令);也可以通过down/up网卡的方式尝试重新获取。
链路本地地址169.254.169.254路由问题
- 查看弹性云服务器内169.254.169.254的默认路由:
正常情况下,169.254.169.254的精确路由的下一跳地址,要和默认路由的下一跳地址保持一致。
图4 查看169.254.169.254的路由信息
- 如果没有169.254.169.254/32位的精确路由:
- 如果169.254.169.254/32的精确路由指向的下一跳和默认路由不一致:
- 如果不是新建弹性云服务器,可能是开启CloudInit特性之前创建的,弹性云服务器内部service network restart重新进行dhcp请求,查看是否获取到正确的路由。
- 如果是新建弹性云服务器,请提交工单,联系技术支持人员。
弹性云服务器获取metadata请求失败
弹性云服务器内部获取metadata请求的命令:
curl http://169.254.169.254/openstack/latest/meta_data.json
正确的返回结果如图5所示:(以下示例仅供参考,命令行有返回值即表示正确)
无法登录或者无法完成非root用户的创建
Cloud-init已配置,并且服务进程正常,但是无法登录或者无法完成非root用户的创建。
需要检查/etc/cloud/cloud.cfg配置文件格式是否严格遵循缩进了,具体要参考各大Linux OS厂商本身的要求,如下以ubuntu操作系统为例。
无法通过预先获得的密钥文件登录弹性云服务器(或无法获取弹性云服务器密码)
如果某次弹性云服务器启动后通过预先获得的密钥文件无法登录弹性云服务器(或无法获取弹性云服务器密码),可以尝试通过重启弹性云服务器后重试解决。
提交工单
如果按照以上步骤执行后,仍然无法正常使用Cloud-init,请提交工单寻求更多帮助。
您需要向技术支持人员提供如下表格中的信息:
Item |
如何使用 |
注释 |
您的值 |
---|---|---|---|
VPC CIDR 块 |
用于客户网关配置 |
示例:10.0.0.0/16 |
- |
VPC ID信息 |
- |
示例:120b71c7-94ac-45b8-8ed6-30aafc8fbdba |
- |
1 号子网 CIDR 块(可与 VPC 的 CIDR 块相同) |
- |
示例:10.0.1.0/24 |
- |
弹性云服务器ID信息 |
- |
- |
- |
弹性云服务器IP信息 |
- |
示例:192.168.1.192/24 |
- |
弹性云服务器路由信息 |
- |
- |
- |