前言
目前大部分公有云、私有云都在使用Cloud-init,已经成为虚拟机元数据管理和OS系统配置初始化的事实标准。最早Cloud-init由Ubuntu的母公司 Canonical 开发,主要思想是当用户首次创建虚拟机时,将前台设置的主机名,密码或者秘钥等存入metadata server(即存放元数据的服务器)。在云平台环境下当Cloud-init随虚拟机启动而运行时,能够获取修改信息并修改主机配置,完成系统的环境初始化。
Cloud-init简介
Cloud-init是专为云环境中虚拟机的初始化而开发的工具,它从各种数据源读取相关数据并据此对虚拟机进行配置,向一台数据服务器获取元数据(meta data)和用户数据(user data),前者是指VM的必要信息,如主机名、网络地址等;后者是系统或用户需要的数据和文件,如用户组信息、启动脚本等。当Cloud-init获取这些信息后,开始使用一些模块对数据进行处理,如新建用户、启动脚本等。常见的配置包括:设定虚拟机的hostname、hosts文件、设定用户名密码、调整文件系统的大小(注意不是调整分区的大小)等。
Cloud-init在ZStack云平台中的实现
Linux系统 User Data镜像封装
一、安装Cloud-init服务——下载并上传Cloud-init的rpm软件包到云主机中
1、在ZStack平台中使用User Data功能,需提前确保Linux云主机镜像已安装Cloud-init,且Cloud-init推荐版本为:0.7.9、17.1。以Cloud-init 0.7.9版本为例,可使用该链接下载相关软件包,如图1所示:

图1 下载完成
http://repo.telcobridges.com/centos/7/os/x86_64/Packages/cloud-init-0.7.9-24.el7.centos.x86_64.rpm
2、使用 Xshell 的 FTP 工具或者SecureCRT的SecureFX、WinSCP等工具上传Cloud-init的rpm 包到Linux云主机当中,例如/root目录下,再使用ls命令查看是否上传成功,如图2所示:

图2 ls命令查看
二、安装并启动Cloud-init服务
1、YUM源基于RPM包管理,能够从指定的服务器自动下载RPM包安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。所以需执行以下命令来安装Cloud-init服务:
yum localinstall cloud-init-0.7.9-24.el7.centos.x86_64.rpm -y
2、Cloud-init服务安装完成过后,需手动启动cloud-init服务;Cloud-init服务启动过后默认会设置开机自启,所以无需再设置开机自启c

Cloud-init是云环境中虚拟机初始化的标准工具,用于处理元数据和用户数据,实现如设置主机名、密码、安装服务等功能。本文介绍了在ZStack云平台中如何安装和使用Cloud-init,包括Linux系统UserData镜像的封装过程,以及通过UserData自动化安装Apache服务和格式化挂载磁盘的场景示例。
最低0.47元/天 解锁文章
2011

被折叠的 条评论
为什么被折叠?



