文档首页> > 常见问题> Cloud-init操作类> 安装Cloud-init常见问题

安装Cloud-init常见问题

更新时间: 2018-11-16 16:16

为了保证使用私有镜像创建的新云服务器可以自定义配置(例如修改云服务器密码),请在创建私有镜像前安装Cloud-init工具。

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

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

本节列出了安装Cloud-init的常见问题及解决方法。

Ubuntu 16.04/CentOS 7/Redhat:Cloud-init设置自启动失败

  • 问题描述:

    安装Cloud-init后,执行以下命令设置Cloud-init为开机自启动时提示失败:

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

    回显信息如下所示:

  • 解决方法:
    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,因此出现了上述错误。

    4. 请执行命令cp /usr/local/clout-init /usr/bin/将clout-init 复制至usr/bin目录下,再执行以下命令重启Cloud-init。

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

    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

    解决方法:执行以下命令将clout-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/将clout-init 复制至usr/bin目录下

  2. 执行命令cloud-init init --local

    回显信息如下所示:

    原因分析:未安装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

    回显信息提示如下所示:

    解决方法:

    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查看服务状态。回显信息如下所示;

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安装成功后,生成镜像并申请云服务器,启动新的云服务器,发现新密码无效。使用旧密码登陆进去后发现,网卡没有启动:

  • 解决方法

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

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

在文档使用中是否遇到以下问题







请至少选择或填写一项反馈信息

字符长度不能超过100

反馈内容不能为空!

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区