
# 安装Cloud-Init FAQ
为了保证使用私有镜像创建的新弹性云服务器可以自定义配置（例如修改弹性云服务器密码），请在创建私有镜像前安装Cloud-Init工具。
安装和配置Cloud-Init相关操作请参考：[安装和配置Cloud-Init工具](https://support.huaweicloud.com/usermanual-ims/zh-cn_topic_0030730603.html)。
本节列举了安装Cloud-Init的常见问题及解决方法。
#### Ubuntu 16.04/CentOS 7：Cloud-Init设置自启动失败
- 问题描述： 安装Cloud-Init后，执行以下命令设置Cloud-Init为开机自启动时，提示失败：
  **systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service**
  回显信息如下所示：
  图1设置Cloud-Init自启动失败   
  ![](https://support.huaweicloud.com/ims_faq/zh-cn_image_0137066322.png "点击放大") 
- 解决方法：
  1. 执行以下命令回退配置 **systemctl unmask cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service**
     
  
  2. 执行以下命令，重新设置Cloud-Init为开机自启动 **systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service**
     
  
  3. 执行以下命令，检查Cloud-Init服务状态 **systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service**
     回显信息如下所示，提示failed且所有服务的状态都是inactive。
     图2检查Cloud-Init服务状态   
     ![](https://support.huaweicloud.com/ims_faq/zh-cn_image_0137085941.png "点击放大")
     图3检查Cloud-Init服务状态   
     ![](https://support.huaweicloud.com/ims_faq/zh-cn_image_0137085943.png "点击放大")
     原因是系统查询Cloud-Init的地址指向/usr/bin/，但是实际安装路径指定的是/usr/local/bin，因此出现了上述错误。
     
  
  4. 执行以下命令，将cloud-init复制至/usr/bin目录下。 **cp /usr/local/cloud-init /usr/bin/**
     
  
  5. 执行以下命令，重启Cloud-Init。 **systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service**
     图4重启Cloud-Init   
     ![](https://support.huaweicloud.com/ims_faq/zh-cn_image_0138105252.png "点击放大") 
  
  6. 执行以下命令，检查Cloud-Init服务状态。 **systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service**
     
   
 
#### Ubuntu 14.04：未安装chkconfig和systemctl
- 问题描述： 未安装chkconfig
  
- 解决方法： 执行以下命令安装chkconfig：
  **apt-get update**
  **apt-get install sysv-rc-conf**
  **cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig**
  安装完成后，执行以下命令查看版本号。
  **cloud-init -v**
  如果回显信息如下所示：
  ```
  -bash:/usr/bin/cloud-init:not found this command
  ```
  解决方法：执行以下命令将cloud-init复制至/usr/bin目录下。
  **cp /usr/local/bin/cloud-init /usr/bin/**
  
 
#### Debian 9.5：查看版本号失败和Cloud-Init设置开启自启动失败
1. Cloud-Init安装完成后，执行以下命令查看版本号。 **cloud-init -v**
   回显信息如下所示：
   ```
   -bash:/usr/bin/cloud-init:not found this command
   ```
   解决方法：执行命令**cp /usr/local/bin/cloud-init /usr/bin/**，将cloud-init复制至/usr/bin目录下。
   
2. 执行命令**cloud-init init --local**
   回显信息如下所示：
   图5设置Cloud-Init自启动回显信息   
   ![](https://support.huaweicloud.com/ims_faq/zh-cn_image_0000001954451565.png "点击放大")
   原因分析：未安装gcc导致无法编译。
   解决方法：
   执行以下命令安装gcc后重新安装Cloud-Init。
   **yum -y install gcc**
   
3. 执行以下命令设置Cloud-Init为开机自启动时提示失败： **systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service**
   回显信息提示如下所示：
   图6设置Cloud-Init自启动提示失败   
   ![](https://support.huaweicloud.com/ims_faq/zh-cn_image_0137070025.png "点击放大")
   解决方法：
   1. 执行以下命令回退配置 **systemctl unmask cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service**
      
   
   2. 执行以下命令，重新设置Cloud-Init为开机自启动 **systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service**
      
   
   3. 执行以下命令，重启Cloud-Init **systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service**
      然后执行命令**systemctl status**查看服务状态。回显信息如下所示：
      图7查看服务状态   
      ![](https://support.huaweicloud.com/ims_faq/zh-cn_image_0137069967.png "点击放大") 
    
 
#### CentOS 7/Fedora 28操作系统：安装Cloud-Init时提示未安装所需的C编译器
- 问题描述 Cloud-Init安装完成后，执行以下命令：
  **cloud-init init --local**
  回显信息出现以下警告：
  ```
  /usr/lib/python2.5/site-packages/Cheetah/Compiler.py:1532: UserWarning: 
  You don't have the C version of NameMapper installed! I'm disabling Cheetah's useStackFrames option as it is painfully slow with the Python version of NameMapper. You should get a copy of Cheetah with the compiled C version of NameMapper.
    "\nYou don't have the C version of NameMapper installed!
  ```
  
- 原因分析 出现该警告是因为在安装Cloud-Init时，需要编译C版本的NameMapper，但是该系统没有预装gcc，因此无法编译，这才导致C版本的NameMapper缺失。
  
- 处理方法 执行以下命令安装gcc：
  **yum -y install gcc**
  然后再重新安装Cloud-Init。
  
 
#### CentOS 7/Fedora操作系统：Cloud-Init安装成功，使用镜像创建的弹性云服务器无法使用新密码登录
- 问题描述 Cloud-Init安装成功后，生成镜像并申请弹性云服务器，启动新的弹性云服务器，发现新密码无效。使用旧密码登录进去后发现，网卡没有启动：
  图8网卡未启动   
  ![](https://support.huaweicloud.com/ims_faq/zh-cn_image_0137083450.png "点击放大") 
- 解决方法 登录创建镜像前的弹性云服务器，打开dhcp配置文件"/etc/sysconfig/network-scripts/ifcfg-eth*X*"，注释HWADDR这一项。
  
 
