文档首页/ 云备份 CBR/ 常见问题/ 优化类/ 安装Cloud-Init常见问题
更新时间:2022-07-21 GMT+08:00

安装Cloud-Init常见问题

为了保证使用备份恢复的新云服务器可以自定义配置(例如修改云服务器密码),请在恢复完成后安装Cloud-Init工具。

安装Cloud-Init相关操作请参考:安装Cloud-init

配置Cloud-Init相关操作请参考:配置Cloud-init

本节列出了安装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自启动失败
  • 解决方法:
    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。

      原因是系统查询Cloud-Init的地址指向/usr/bin/,但是实际安装路径指定的是/usr/local/bin,因此出现了上述错误。

      图2 检查Cloud-Init服务状态
      图3 检查Cloud-Init服务状态
    4. 请执行命令cp /usr/local/cloud-init /usr/bin/将cloud-init 复制至usr/bin目录下,再执行以下命令重启Cloud-Init

      # systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service

      图4 重启Cloud-Init
    5. 执行以下命令,检查Cloud-Init服务状态。

      systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service

Ubuntu14.04:未安装chkconfig和systemctl

  • 问题描述:

    未安装chkconfig

  • 解决方法:

    Ubuntu14.04执行以下命令安装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自启动回显信息

    原因分析:未安装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自启动提示失败

    解决方法:

    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 查看服务状态

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 网卡未启动
  • 解决方法

    登录云服务器,打开dhcp配置文件/etc/sysconfig/network-scripts/ifcfg-ethX,注释HWADDR这一项。