本文参考了官网juno版本的《image-guide》。镜像制作主要分3步:
1、创建虚拟磁盘,主要需要关注的是虚拟磁盘格式;
2、通过虚拟机管理软件或者远程桌面接入到虚拟机在第1步创建的虚拟磁盘上安装操作系统;主要关注虚拟机的IO驱动,同时,远程桌面的操作可能会遇见一些问题,比如键盘模式。
3、在第2步的基础上安装云初始化软件cloudbaseinit。注意安装完成后,关闭虚拟机,保护好现场,不要启动虚拟机。
下面分别介绍:
一、创建虚拟磁盘:
qemu-img create -f qcow2 ws2008-400g-1.qcow2 400G
这里采用最常用的qcow2文件格式,具体性能和选择依据请参考网上资料。我采用这种文件格式用在生产系统上,稳定性、性能等等都不存在什么问题。
二、通过虚拟机管理软件远程桌面接入到虚拟机安装操作系统:
virt-install --connect qemu:///system \
--name ws2008-400g-1 --ram 8192 --vcpus 2 \
--network network=default,model=virtio \
--disk path=/tmp/ws2008-400g-1.qcow2,format=qcow2,device=disk,bus=virtio \
--cdrom /data/iso/cn_windows_server_2008_r2_standard_enterprise_datacenter_web_x64_dvd_x15-50360.iso \
--disk path=/data/iso/virtio-win-0.1-100.iso,device=cdrom \
--vnc --os-type windows --os-variant win2k8
注意,其中/tmp/ws2008-400g-1.qcow2 就是第1步生成的虚拟磁盘,/data/iso/cn_windows_server_2008_r2_standard_enterprise_datacenter_web_x64_dvd_x15-50360.iso 是上传到服务器上的win server2008r2操作系统的安装盘镜像文件。其他参数如果有疑问,请参考virt-install -h帮助,或者查找网上资料。
在安装的过程中,请注意下列事项:
1)远程桌面或者virt-manager 图形界面上,选择键盘模式为en_us,否则字符输入会有问题;
2)安装驱动的过程中,选择win7的驱动
3)这是镜像制作,因此将常用的配置或者软件都在这个镜像中配置或者安装好,比如,将远程桌面开启: 我的电脑->远程设置->允许任何用户远程登录(可选)
4)安装IO驱动,具体步骤如下:
Complete the VirtIO drivers installation by running the following command:
C:\pnputil -i -a E:\WIN8\AMD64\*.INF
To allow Cloudbase-Init to run scripts during an instance boot, set the PowerShell exe-
cution policy to be unrestricted:
C:\powershell C:\Set-ExecutionPolicy Unrestricted
三、安装配置云计算初始化软件cloudbaseinit
拷贝文件: cloudbaseinit.msi到虚拟机。此时网络未通,因此可以先将这个文件制作成ISO文件,然后通过挂载虚拟光驱拷贝: /data/iso/cloudbaseinit.iso
运行cloudbaseinit.msi
注意,在安装过程中,将“use metadata password ”的选项取消,
在配置选项窗口,按照下面的参数进行修改:
? Username: Administrator
? Network adapter to configure: Red Hat VirtIO Ethernet Adapter
? Serial port for logging: COM1
当安装完成后,在 Cloudbase-Init 安装向导结束窗口,选择 Run Sysprep and Shutdown ,然后点击Finish。至此,镜像安装完成。
最后,根据上面这个镜像制作openstack上的镜像,运行下面的命令:
glance image-create --name WS2008 --disk-format qcow2 \ --container-format bare --is-public true \ --file /tmp/ws2008-400g.qcow2