更新时间:2026-04-09 GMT+08:00
分享

RedHat/CentOS/Oracle Linux/Ubuntu/Debian系列

Cloud-Init安装方式分为:采用官方提供的包源安装Cloud-Init工具(优先推荐)采用官方提供的Cloud-Init源码包通过pip方式安装Cloud-Init工具采用源码编译安装方法

采用官方提供的包源安装Cloud-Init工具(优先推荐)

在不同操作系统的虚拟机上安装Cloud-Init工具的方法不同,请在root用户下执行相关安装操作。

以下将介绍CentOS、Debian和Ubuntu操作系统安装Cloud-Init工具的具体方法。其他操作系统类型,请安装并配置对应类型的Cloud-Init工具,例如,使用CoreOS操作系统时需安装并配置coreos-cloudinit。

  • CentOS操作系统

    CentOS操作系统的Cloud-Init网络安装地址如表1所示。请在提供的网络安装地址下选择相应的epel-release安装包进行安装。

    表1 Cloud-Init网络安装地址

    操作系统类型

    版本

    网络安装地址

    CentOS

    7系列64位

    https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/e/

    此处以CentOS 7.6 64位为例,执行以下命令安装Cloud-Init。

    yum install https://archives.fedoraproject.org/pub/archive/epel/7/x86_64/Packages/e/epel-release-xx-xx.noarch.rpm

    yum install cloud-init

    xx-xx表示当前操作系统对应的epel版本号。

  • Debian操作系统

    安装Cloud-Init前,请确认操作系统已经配置好对应的网络安装源地址,请查看“/etc/apt/sources.list”文件中是否已配置相关软件包安装源地址,如果没有配置相关地址源,请参考Debian官网信息配置软件包安装源。

    执行以下命令,安装Cloud-Init。

    apt-get update

    apt-get install cloud-init

    Debian操作系统安装完Cloud-Init后,还需要安装vlan和ifenslave服务,请执行以下命令进行安装:

    apt-get install vlan

    apt-get install ifenslave

  • Ubuntu操作系统

    安装Cloud-Init前,请确认操作系统已经配置好对应的网络安装源地址,请查看“/etc/apt/sources.list”文件中是否已配置相关软件包安装源地址,如果没有配置相关地址源,请参考Ubuntu官网信息配置软件包安装源。

    执行以下命令,安装Cloud-Init。

    apt-get update

    apt-get install cloud-init

    Ubuntu操作系统安装完Cloud-Init后,还需要安装ssh服务、dkms工具、vlan和ifenslave服务,以及ifupdown服务,请执行以下操作进行安装:

    1. 安装ssh服务。

      对于x86镜像,执行命令:

      apt-get install openssh-client

      apt-get install openssh-server

      对于ARM64镜像,执行命令:

      apt install openssh-client

      apt install openssh-server

    2. 安装dkms工具。

      为了防止SDI驱动异常,Ubuntu需要安装dkms,可以使用apt-get命令在线安装。

      执行命令进行安装:apt-get install dkms

      待安装完成后,执行命令:vi /usr/sbin/dkms

      然后跳转到283行(同时按下“shift”和“:”进入命令行模式,输入283并按“Enter”),修改为:

      invoke_command "$mkinitrd -f $initrd_dir/$initrd $1" "$mkinitrd" background
    3. 安装vlan和ifenslave服务。

      apt-get install vlan

      apt-get install ifenslave

    4. 安装ifupdown服务。

      apt-get install ifupdown

采用官方提供的Cloud-Init源码包通过pip方式安装Cloud-Init工具

以cloud-init-0.7.9版本为例,Cloud-Init工具的安装步骤如下。

  1. 下载cloud-init-0.7.9.tar.gz源码包(推荐优先选用0.7.9版本),上传到虚拟机指定目录“/home/”下。

    cloud-init-0.7.9.tar.gz源码包下载地址:

    https://launchpad.net/cloud-init/trunk/0.7.9/+download/cloud-init-0.7.9.tar.gz

  2. 在“~/.pip/”目录下新建pip.conf文件,编辑内容如下。

    “~/.pip/”若不存在,可使用命令mkdir ~/.pip命令新建。

    [global]
    index-url  = https://<$mirror>/simple/
    trusted-host = <$mirror>

    编辑内容中<$mirror>部分可以选择公网PyPI源或教育网PyPI源进行替换。

  3. 执行以下命令,安装本地下载的Cloud-Init源码包,安装过程中根据需要选择--upgrade参数。

    pip install [--upgrade] /home/cloud-init-0.7.9.tar.gz

  4. 执行命令cloud-init -v,如回显如下类似信息表示安装Cloud-Init成功。
    cloud-init 0.7.9
  5. 设置Cloud-Init相关服务为开机自启动。
    • 若操作系统是sysvinit自启动管理服务,则执行以下命令进行设置。

      chkconfig --add cloud-init-local; chkconfig --add cloud-init; chkconfig --add cloud-config; chkconfig --add cloud-final

      chkconfig cloud-init-local on; chkconfig cloud-init on; chkconfig cloud-config on; chkconfig cloud-final on

      service cloud-init-local status; service cloud-init status; service cloud-config status; service cloud-final status

    • 若操作系统是systemd自启动管理服务,则执行以下命令进行设置。

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

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

采用官方提供的Cloud-Init源码包通过pip方式进行安装时要注意以下两点。

  1. Cloud-Init安装时需要添加syslog用户到adm组。存在syslog用户时直接添加syslog用户到adm组。不存在syslog用户时(如CentOS),执行下列命令创建syslog用户,添加到adm组:

    useradd syslog

    groupadd adm

    usermod -g adm syslog

  2. 在“/etc/cloud/cloud.cfg”中system_info部分的distro要根据具体操作系统发行版本做相应修改(如根据具体操作系统发行版相应修改为:distro: ubuntudistro: debiandistro: fedora)。

采用源码编译安装方法

由于Cloud-Init配置的相关内容已在源码包编译完成,执行以下操作步骤安装Cloud-Init成功即可,无需执行Cloud-Init配置操作。官方源码编译安装方法的Cloud-Init工具Github开源地址:https://github.com/canonical/cloud-init/

  1. 执行以下命令,下载Cloud-Init压缩包,并将其复制至新建的“/tmp/CLOUD-INIT”文件夹。

    0.7.6版本安装包下载地址:https://github.com/canonical/cloud-init/archive/refs/tags/0.7.6.zip

    0.7.9版本安装包下载地址:https://github.com/canonical/cloud-init/archive/refs/tags/0.7.9.zip

    wget https://github.com/canonical/cloud-init/archive/refs/tags/0.7.9.zip

    mkdir /tmp/CLOUD-INIT

    cp cloud-init-0.7.9.zip /tmp/CLOUD-INIT

    cd /tmp/CLOUD-INIT

  2. 执行如下命令,解压Cloud-Init压缩包。

    unzip cloud-init-0.7.9.zip

  3. 执行如下命令进入cloud-init-0.7.9文件夹。

    cd cloud-init-0.7.9

  4. 对于CentOS 7.x操作系统类型,执行相应的命令安装Cloud-Init安装包。

    python setup.py build

    python setup.py install --init-system systemd

    Cloud-Init安装时需要添加syslog用户到adm组。存在syslog用户时直接添加syslog用户到adm组。不存在syslog用户时,执行下列命令创建syslog用户,添加到adm组:

    useradd syslog

    groupadd adm

    usermod -g adm syslog

  5. 设置Cloud-Init相关服务为开机自启动。
    • 若操作系统是sysvinit自启动管理服务,则执行以下命令进行设置。

      chkconfig --add cloud-init-local; chkconfig --add cloud-init; chkconfig --add cloud-config; chkconfig --add cloud-final

      chkconfig cloud-init-local on; chkconfig cloud-init on; chkconfig cloud-config on; chkconfig cloud-final on

      service cloud-init-local status; service cloud-init status; service cloud-config status; service cloud-final status

    • 若操作系统是systemd自启动管理服务,则执行以下命令进行设置。

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

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

  6. 执行如下命令检查Cloud-Init是否安装成功。

    cloud-init -v

    cloud-init init --local

    回显如下类似信息所示表示安装Cloud-Init成功。

    cloud-init 0.7.9

相关文档