
OpenStack 镜像管理
一、简介
很多源都有为 OpenStack 已经编译好的各种镜像了,您可以直接下载并通过使用这些镜像来熟悉 OpenStack。
不过如果是为生产环境进行部署的话,您一定需要构建含有定制软件或配置的镜像文件。不要着急,本章
将引领您完成几种较为流行的 Linux 发行版镜像,最后也将制作一份 Windows 的镜像。
由不同的 Linux 发行版制作镜像时,过程几乎一样,仅有微小的差别而已。由于含有 cloud-ini 软件包,人
们用 Ubuntu 系统制作镜像文件变得非常容易。Cloud-init 软件在实例运行时能够自动维护实例配置,也将
为无密码登陆完成密匙导入以及完成设置主机名等任务。每个实例都将通过 169.254.169.254 的元数据接口,
从 nova 运算中读取特定的配置。
如果您制作发行版不含有诸如 cloud-init 此类的软件包,您就需要自行完成密匙导入等操作了。说来也简单,
只需向 rc.local 文件中添加相关命令即可。
如前所述,创建 Linux 不同发行版的过程除了几细微之处外,其余完全一致。不同点将在后文阐述。
本文所有的例子,都是在 KVM 基础上完成的。正像前两章说道的那样,现在我正在使用 client1。
接下来的操作将制作很多镜像,这些镜像代表一个没有分区的硬盘。
二、创建 Linux 镜像
第一部,首先是在 Client1 上创建一块空镜像,这块镜像用作虚拟机的硬盘,所以请保证留出你所需的空间
的大小:
kvm-img create -f qcow2 server.img 5G
(一)安装准备
下载你所需的 Linux 发行版 iso 原镜像文件,比如您想安装 Ubuntu,您可以使用 wget 或浏览器从网站
“http://releases.ubuntu.com”获得 iso 文件。
将下载的 iso 文件置入虚拟机的 CD-ROM 后,启动 KVM 一个虚拟机实例。您将看到安装过程的开始。键入
如下命令,它将在端口 0 开放 VNC 服务:
sudo kvm -m 256 -cdrom ubuntu-12.04-server-amd64.iso -drive file=server.img,if=virtio,index=0 -boot d -net nic
-net user -nographic -vnc :0
使用 0 这个展示端口连入虚拟机的 VNC,并完成安装。
举例如下,client1 的 IP 地址是 10.10.10.4,则通过下列命令访问 vnc:
vncviewer 10.10.10.4 :0
注意,在制作 Linux 镜像过程中,请创建一个单独的 ext4 格式分区并将其挂在 swap 分区下。
安装结束后,通过执行下列命令重新载入虚拟机:
sudo kvm -m 256 -drive file=server.img,if=virtio,index=0 -boot c -net nic -net user -nographic -vnc :0
此时,您可以在这个系统上安装定制的软件包,进行系统更新,添加用户或更改配置了。
(二)Ubuntu
执行以下命令:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install openssh-server cloud-init
清除 /etc/udev/rules.d 文件的网络设备命名规则,因为这些规则将从实例的网卡获得。
sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules
(三)Fedfora
运行如下命令:
yum update