最近,我已经开发了基于Ubuntu标准的云实用程序,并将它们移植到了Debian中。让我们来看看如何将Debian工具带到云端!
在IaaS(基础设施即服务)平台上启动新实例时,实例镜像处于初始未被配置状态。因此,需要一种方法在实例启动时根据使用者情况来自动配置实例。通常,IaaS平台为此提供了一个元数据服务器,比如在Amazon EC2(亚马逊云EC2)中就有提供此类服务器。这个元数据服务器实际是一个正在监听一类特殊硬编码IP地址的HTTP服务器,当实例启动时,实例可以由这个服务器请求获取它自己的基本信息,如主机名,并通过检索基本的用户元数据来自动配置实例。用户可以查看有关OpenStack元数据服务的文档来获取更多信息。
另外,镜像会被预先设定大小后上传平台。但镜像在平台上运行时,运行镜像所需平台磁盘通常比镜像要大:可能需要调整镜像大小以便充分利用平台分配给实例的全部磁盘空间。
平台上运行实例时,尤其像Amazon EC2或OpenStack这类平台,需要根据启动的环境来配置和更新镜像。包括扩展模板镜像磁盘,这有利于充分使用运行实例的可用磁盘。
Ubuntu提供了一套云实用程序,它实际上由不同的源代码包(cloud-init,cloud-utils、clout-initramfs-tools)组成。
这三个源代码包结合起来,可以让用户在调整磁盘大小至Puppet配置间均可对实例进行操作。
Ubuntu在很久以前就有这三个源代码包,但不幸的是,Debian一直未被开发出来。
我一直致力于将这些源代码包移植到Debian中,直到现在才有所收获。
现在大家可以找到这3个源代码包,然后上传到Debian sid。
首先,建立一个Debian镜像,运行:
apt-get install cloud-init cloud-tools cloud-initiramfs-growroot
注意:实例重启后,实例根分区会扩展到全部的可用磁盘大小,并会请求元数据服务器应答,检索用户元数据如主机名来配置实例。
可用于云的cloud-utils和cloud-initramfs-tools源代码包在Debian的git服务器上,这两个源代码包用户可以自行通过ftp-master上传下载在云平台上构建它们,更下后退出NEW队列。 另一源代码包cloud-init可以直接在sid中使用。
这类工具完成后,接下来准备开始开发vmbuilder之类的工具,以便用户能够通过简单的命令行构建云兼容的Debian镜像。