自定义创建Openstack镜像(Windows)

主要是讲解如何在KVM环境下制作windows 2008 r2镜像

制作KVM镜像

首先需要拥有KVM虚拟化管理环境的宿主机一台,并且到http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers 下载windows的virtio驱动文件

创建一个20G大小镜像文件

qemu-img create -f qcow2 windows.img 20G

把两个文件放到/mnt目录下

[root@centos mnt]# ll
total 72548
-rw-r--r-- 1 qemu qemu 74143744 Jul 28 11:11 virtio-win-0.1-81.iso
-rw-r--r-- 1 root root   197120 Jul 28 17:00 windows.img

使用virt-manager安装虚拟机










虚拟机开始启动安装
注意安装到选择硬盘时因为windows没有virtio的驱动需要手动加载,所以前面我们添加了第二个光驱加载驱动的iso文件


第一个网卡驱动,系统安装完毕后需要用
第二个是SCSI 控制器驱动,这里要用到的
第三个是KVM的ballon RAM的气球技术内存管理,这里没用到
下一步就正常安装系统了

自定义创建Openstack镜像(Windows)_第1张图片

进入系统后需要把网卡驱动也加载上,修改防火墙策略放通ICMP和3389端口(觉得麻烦可以直接禁用防火墙),打开远程桌面连接,还有定制一些需要用到的软件

安装Cloud-init 工具

下载64位版本
https://www.cloudbase.it/downloads/CloudbaseInitSetup_Beta_x64.msi

Cloud-init是Windows镜像启动的时候接受来自Metadata数据的必要客户端

安装程序包括了一个专用的Python环境,会创建全局的cloud-init.conf文件,配置用户名,工作组,还有接受metadata数据的网卡.Windows的镜像在接收metadata的流程,是在系统后依靠
“Cloud Initialization Service” 服务运行Python模块cloudbaseinit.plugins.windows,里面包含了设置主机名,设置用户,静态IP等方法,接收来自metadata的变量.


安装完成后,” Cloud Initialization Service”为非启动状态,要设置为下次系统启动时自动运行服务.

操作系统封装

新版本cloudbase最后会提示运行sysprep封装.

上传Windows镜像

对虚拟磁盘进行压缩处理,qemu-img的qcow2具有高效压缩功能

qemu-img convert -c -O qcow2 /mnt/windows.img /mnt/windows.qcow2

等待压缩完毕,基本上容量可以压缩到一半

把windows.qcow2 复制到openstack controler节点上,创建glance镜像

glance image-create --name “windows2k8” --disk-format qcow2 --container-format bare --is-public True --progress < windows.qcow2

在KVM中运行windows镜像,实例操作系统时间默认是UTC时间,必须设置系统类型,让镜像使用localtime设置

imageID=`glance image-list | awk '/windows2k8/{print $1}'` glance image-update $imageID --property os_type='windows'

现在可以使用这个自定义的镜像来创建实例

你可能感兴趣的:(镜像,自定义,openstack,glance)