
# Cloud-init连接出现问题时，如何排查？
#### 问题描述
无法正常使用Cloud-init。
#### 排查思路
弹性云服务器获取Metadata的流程如[图1]所示：
图1获取Metadata流程图   
![](https://support.huaweicloud.com/vpc_faq/zh-cn_image_0295359700.png)
您可以按照以下原因进行排查，如果解决完某个可能原因仍未解决问题，请继续排查其他可能原因。
图2排查思路   
![](https://support.huaweicloud.com/vpc_faq/zh-cn_image_0295415754.png "点击放大")
表1排查思路 
| 可能原因                                 | 处理措施                                                                                                                            |
|:---|:---|
| 弹性云服务器未获取到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网卡的方式尝试重新获取。
图3查看弹性云服务器IP地址   
![](https://support.huaweicloud.com/vpc_faq/zh-cn_image_0295524499.png "点击放大")
 #### 链路本地地址169.254.169.254路由问题
如果弹性云服务器ping不通169.254.169.254，请按以下步骤排查：
1. 查看弹性云服务器内169.254.169.254的默认路由： 正常情况下，169.254.169.254的精确路由的下一跳地址，要和默认路由的下一跳地址保持一致。
   图4查看169.254.169.254的路由信息   
   ![](https://support.huaweicloud.com/vpc_faq/zh-cn_image_0295524500.png "点击放大") 
2. 如果没有169.254.169.254/32位的精确路由： CentOS 5系列的镜像不支持opt_name为121的这种路由注入方式，所以无法注入，请尝试使用新的镜像。
   
3. 如果169.254.169.254/32的精确路由指向的下一跳和默认路由不一致：
   - 如果不是新建弹性云服务器，可能是开启CloudInit特性之前创建的，弹性云服务器内部service network restart重新进行dhcp请求，查看是否获取到正确的路由。
   
   - 如果是新建弹性云服务器，请[提交工单](https://console.huaweicloud.com/ticket/#/ticketindex/createIndex)，联系技术支持人员。
    
 
 #### 弹性云服务器获取metadata请求失败
弹性云服务器内部获取metadata请求的命令：
**curl http://169.254.169.254/openstack/latest/meta_data.json**
正确的返回结果如[图5]所示：（以下示例仅供参考，命令行有返回值即表示正确）
图5返回结果   
![](https://support.huaweicloud.com/vpc_faq/zh-cn_image_0295524501.png "点击放大")
 #### 无法登录或者无法完成非root用户的创建
Cloud-init已配置，并且服务进程正常，但是无法登录或者无法完成非root用户的创建。
需要检查/etc/cloud/cloud.cfg配置文件格式是否严格遵循缩进了，具体要参考各大Linux OS厂商本身的要求，如下以ubuntu操作系统为例。
图6检查配置文件   
![](https://support.huaweicloud.com/vpc_faq/zh-cn_image_0000002726977171.png "点击放大")
#### 无法通过预先获得的密钥文件登录弹性云服务器（或无法获取弹性云服务器密码）
如果某次弹性云服务器启动后通过预先获得的密钥文件无法登录弹性云服务器（或无法获取弹性云服务器密码），可以尝试通过重启弹性云服务器后重试解决。
#### 提交工单
如果按照以上步骤执行后，仍然无法正常使用Cloud-init，请[提交工单](https://console.huaweicloud.com/ticket/#/ticketindex/createIndex)寻求更多帮助。
您需要向技术支持人员提供如下表格中的信息：
| **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                     | -       |
| 弹性云服务器路由信息                      | -        | -                                       | -       |
   
