全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
云服务器 ECS

安装 cloud-init

更新时间:2017-10-24 17:35:24

在导入镜像时,为了保证导入的镜像 hostname、NTP 和 Yum 源配置成功,建议您先在实例上安装 cloud-init。目前 cloud-init 支持的系统包括:CentOS、Debian、Fedora、FreeBSD、Gentoo、RHEL(Red Hat Enterprise Linux)、SLES(SUSE Linux Enterprise Server)和 Ubuntu。

本文介绍了如何安装 cloud-init。

前提条件

您的实例必须安装以下软件:

  • git:用于下载 cloud-init 源码包。

    安装命令:yum install git

  • python2.7:是 cloud-init 运行和安装的基础。

    安装命令:yum install python

  • pip:用于安装一些 python2.7 里缺少但是 cloud-init 依赖的库。

    安装命令:yum install python-pip

由于不同系统包管理器不一样,这里只列举了 yum 方式。对于 zypper 或者 apt-get 的包管理器安装方式类似。

操作步骤

您可以按以下步骤安装 cloud-init。

  1. 远程连接到 Linux 实例

  2. 执行以下命令从 cloud-init 官网下载 cloud-init 源码包。

    1. git clone https://git.launchpad.net/cloud-init
  3. 执行以下命令进入 cloud-init 目录。

    1. cd cloud-init
  4. 运行以下命令安装 cloud-init 的安装文件 setup.py。

    1. python setup.py install

    安装过程中,如果出现以下信息,表示 Python 缺少 six 和 oauthlib 库。您可以使用 pip 安装 six 库:pip install six

    1. [root@iXXXXXX cloud-init]# python setup.py install
    2. Traceback (most recent call last):
    3. File "setup.py", line 127, in <module>
    4. glob('systemd/*.target')) if is_f(f)],
    5. File "setup.py", line 114, in render_tmpl
    6. tiny_p([sys.executable, './tools/render-cloudcfg', template, fpath])
    7. File "setup.py", line 45, in tiny_p
    8. (cmd, ret, out, err))
    9. RuntimeError: Failed running ['/usr/bin/python', './tools/render-cloudcfg', 'systemd/cloud-config.service.tmpl', 'tmpXX25hU/cloud-config.service'] [rc=1] (, Traceback (most recent call last):
    10. File "./tools/render-cloudcfg", line 10, in <module>
    11. from cloudinit import templater
    12. File "/root/cloud-init/cloudinit/templater.py", line 29, in <module>
    13. from cloudinit import log as logging
    14. File "/root/cloud-init/cloudinit/log.py", line 19, in <module>
    15. import six
    16. ImportError: No module named six
    17. )

    安装过程中,如果出现以下信息,表示 Python 缺少 oauthlib 库。您可以使用 pip 安装 oauthlib 库:pip install oauthlib

    1. [root@iXXXXXX cloud-init]# python setup.py install
    2. Traceback (most recent call last):
    3. File "setup.py", line 127, in <module>
    4. glob('systemd/*.target')) if is_f(f)],
    5. File "setup.py", line 114, in render_tmpl
    6. tiny_p([sys.executable, './tools/render-cloudcfg', template, fpath])
    7. File "setup.py", line 45, in tiny_p
    8. (cmd, ret, out, err))
    9. RuntimeError: Failed running ['/usr/bin/python', './tools/render-cloudcfg', 'systemd/cloud-config.service.tmpl', 'tmpUrhrOM/cloud-config.service'] [rc=1] (, Traceback (most recent call last):
    10. File "./tools/render-cloudcfg", line 10, in <module>
    11. from cloudinit import templater
    12. File "/root/cloud-init/cloudinit/templater.py", line 31, in <module>
    13. from cloudinit import util
    14. File "/root/cloud-init/cloudinit/util.py", line 48, in <module>
    15. from cloudinit import url_helper
    16. File "/root/cloud-init/cloudinit/url_helper.py", line 20, in <module>
    17. import oauthlib.oauth1 as oauth1
    18. ImportError: No module named oauthlib.oauth1
    19. )

    注意:不同系统缺少的库可能不同,您都可以通过 pip 安装,安装完之后再次执行 python setup.py install

至此,您已经完成了 cloud-init 安装。

本文导读目录