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路由问题
弹性云服务器获取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操作系统为例。
无法通过预先获得的密钥文件登录弹性云服务器(或无法获取弹性云服务器密码)
如果某次弹性云服务器启动后通过预先获得的密钥文件无法登录弹性云服务器(或无法获取弹性云服务器密码),可以尝试通过重启弹性云服务器后重试解决。