为了保证导入Linux类型镜像时的镜像源配置成功应该安装cloud-init


本文摘自PHP中文网,作者坏嘻嘻,侵删。

本篇文章给大家带来的内容是关于为了保证导入Linux类型镜像时的镜像源配置成功应该安装cloud-init,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

安装 cloud-init

如果您需要使用已有镜像创建ECS实例,可以通过导入镜像功能完成配置。在导入Linux类型镜像时,为了保证导入的镜像hostname、NTP和Yum源配置成功,建议您预先在源服务器、虚拟机或者云主机上安装cloud-init。

注意事项

目前,支持安装cloud-init的Linux发行版包括CentOS、Debian、Fedora、FreeBSD、Gentoo、RHEL(Red Hat Enterprise Linux)、SLES(SUSE Linux Enterprise Server)和Ubuntu。

若您的源服务器、虚拟机或者云主机已经安装了cloud-init,您需要确认cloud-init版本号高于0.7.9,包含低版本cloud-init的镜像会引起相关实例配置失败,例如NTP、HostName 和Yum等。

登录源服务器、虚拟机或者云主机。

运行 cloud-init --version 查询cloud-init版本。

如果您的cloud-init版本号高于0.7.9,表示该版本可用。否则您需要 安装cloud-init。

前提条件

安装cloud-init之前,您的源服务器、虚拟机或者云主机必须安装以下软件。

git:下载cloud-init源码包

yum安装方式:yum install git

Python2.7:cloud-init运行和安装的基础

yum安装方式:yum install python

pip:安装cloud-init依赖的Python库

yum安装方式:yum install python-pip

此处列举了 yum 安装方式。zypper 或者 apt-get 的包管理器安装方式与 yum 安装方式类似。

安装cloud-init

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

登录待导入镜像的源服务器、虚拟机或者云主机。

运行 git clone https://git.launchpad.net/cloud-init 从cloud-init官网下载cloud-init源码包。

运行 cd cloud-init 进入cloud-init目录。

运行 python setup.py install 安装cloud-init的安装文件setup.py。

运行 vi /etc/cloud/cloud.cfg 修改配置文件cloud.cfg。

微信截图_20180918143812.png

将 cloud_init_modules 之前的配置修改成如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

# Example datasource config

 # The top level settings are used as module

 # and system configuration.

 # A set of users which may be applied and/or used by various modules

 # when a 'default' entry is found it will reference the 'default_user'

 # from the distro configuration specified below

 users:

    - default

 user:

     name: root

     lock_passwd: False

 # If this is set, 'root' will not be able to ssh in and they

 # will get a message to login instead as the above $user

 disable_root: false

 # This will cause the set+update hostname module to not operate (if true)

 preserve_hostname: false

 syslog_fix_perms: root:root

 datasource_list: [ AliYun ]

 # Example datasource config

 datasource:

     AliYun:

         support_xen: false

         timeout: 5 # (defaults to 50 seconds)

         max_wait: 60 # (defaults to 120 seconds)

 #      metadata_urls: [ 'blah.com' ]

 # The modules that run in the 'init' stage

 cloud_init_modules:

排查故障

不同镜像缺少的库可能不同,您都可以通过pip安装,安装完之后再次重复以上步骤 4。

缺少six和oauthlib库

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

1

2

3

File "/root/cloud-init/cloudinit/log.py", line 19, in <module>

      import six

  ImportError: No module named s  )

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

1

2

3

File "/root/cloud-init/cloudinit/url_helper.py", line 20, in <module>

      import oauthlib.oauth1 as oauth1

  ImportError: No module named oauthlib.oaut  )

提示错误时没有明确缺少的依赖库

如果安装报错时,没有明确提示缺少哪些依赖库时,您可以根据cloud-init的requirements.txt文件里显示的库,并运行 pip install -r requirements.txt 安装所有依赖库。

后续步骤

您可以 导入自定义镜像。

以上就是为了保证导入Linux类型镜像时的镜像源配置成功应该安装cloud-init的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

Linux系统命令无法使用

Linux无法连接外网

Linux绿色是什么文件

Linux如何重命名文件和文件夹

自动快照功能细节和快速简单的删除自动快照

Linux touch命令有什么用

全面详解Linux下的top命令――实时监控服务器状况

Linux如何修改文件名?

查看Linux操作系统有多少位

Linux系统提示找不到命令

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...