openstack-虚拟机windows2016镜像制作

一、准备工作(kvm环境,vnc远程连接工具)

  1. 准备好windows 2016的ISO镜像文件
https://msdn.itellyou.cn/
  1. 下载VirtIO驱动(已测试2012r2为126版 2016为164版)
官网地址:https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html
下载地址:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/

二、安装操作系统

2.1、创建镜像磁盘

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

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_上传

2.2、启动虚机

virt-install --name winserver2016-1 --memory 8192 --vcpus 4 --network network=default,model=virtio --disk path=win2016.qcow2,format=qcow2,device=disk,bus=virtio --cdrom /iso1/cn_windows_server_2016_vl_x64_dvd_11636695.iso --disk path=/iso1/virtio/virtio-win-0.1.164.iso,device=cdrom --graphics vnc,listen=0.0.0.0 --virt-type kvm --os-type windows --os-variant win2k16 --boot cdrom

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_02


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_03


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_04


vi /etc/libvirt/qemu/winserver2016-1.xml 修改配置如下

将驱动盘与镜像盘对换(had改为hdb,hdb改为had)

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_05

###写入配置
virsh define /etc/libvirt/qemu/winserver2016-1.xml
###启动虚拟机
virsh start winserver2016-1.xml

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_06

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_上传_07


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_windows_08

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_09

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_openstack_10

2.3、安装virtIO驱动

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_11


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_windows_12


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_13


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_14


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_openstack_15

  • 此处注意:viostor为磁盘驱动

    硬盘驱动装好后,还需要装virtio串口驱动



    找到对应版本串口驱动

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_windows_16


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_17


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_openstack_18


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_openstack_19

2.4、设置密码

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_windows_20

2.5、更新驱动

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_21

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_22

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_23

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_openstack_24

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_openstack_25


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_上传_26


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_27


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_上传_28


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_openstack_29


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_windows_30


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_31

三、安装cloudbase-int和QGA

3.1、下载cloudbase-init包

根据Windows操作系统的不同位数,需要下载不同版本的Cloudbase-init工具安装包。
Cloudbase官网http://www.cloudbase.it/cloud-init-for-windows-instances/。
Cloudbase-init分为稳定版本和Beta版本两种。
稳定版本获取路径:

  • 64位:https://www.cloudbase.it/downloads/CloudbaseInitSetup_Stable_x64.msi
  • 32位:https://www.cloudbase.it/downloads/CloudbaseInitSetup_Stable_x86.msi

Beta版本获取路径:

  • 64位:https://www.cloudbase.it/downloads/CloudbaseInitSetup_x64.msi
  • 32位:https://www.cloudbase.it/downloads/CloudbaseInitSetup_x86.msi

3.2、下载QGA工具安装包

下载地址:
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-qemu-ga/qemu-ga-win-7.5.0-2.el7ev/

QGA也可以用virtIO驱动包中的

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_32


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_上传_33

3.3、上传至虚机中

1.在宿主机搭建http 
Yum install -y httpd 
Systemctl start httpd 
2.把需要上传的文件打包压缩
Tar –zcvf pack.tart.gz pack 
3.把文件上传至/var/www/html下
4。在windows中下载
打开浏览器输入宿主机IP加/var/www/html下需要下载的文件名

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_34


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_35


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_36


下载完成后,清除下载记录以及访问记录。

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_openstack_37


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_windows_38

3.4、cloudbase-init安装

3.4.1、安装

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_39


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_40

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_openstack_41


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_42


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_上传_43


在“Completed the Cloudbase-Init Setup Wizard ”窗口,请勿勾选“Run Sysprep to create a generalized Image. This is necessary if you plan to duplicate this instance, for example by creating a Glance image”及“Shutdown when Sysprep terminate”。单击“Finish”。

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_44

3.4.2、配置cloudbase-init.conf文件

在cloudbase-init安装路径的配置文件“C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf”的最后一行,增加配置项“netbios_host_name_compatibility=false”,使Windows系统的hostname长度支持到63个字符。
在cloudbase-init安装路径的配置文件“C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf”中增加配置项
“first_logon_behaviour=no”,配置首次登陆系统不用修改密码。

3.4.3、禁止cloudbase自动生成密码

注:默认情况下,如果没有admin_pass,cloudbase工具会生成一个随机密码,这里修改避免自动生成密码。
C:\Program Files\Cloudbase Solutions\Cloudbase-Init\ Python\Lib\site-packages\cloudbaseinit\plugins\common\setuserpassword.py

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_45

3.5、安装QGA

3.5.1、安装(双击安装)

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_上传_46

3.5.2、启动服务

openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_xml_47


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_上传_48


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_49


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_kvm_50


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_上传_51


openstack物理机宕机虚拟机自动迁移 openstack windows虚拟机_上传_52

五、标准化制定

。。。

六、上传镜像

6.1、转换格式qcow2转raw

qemu-img convert -f qcow2 -O raw win2016.qcow2 win2016.raw

6.2、上传镜像

正确实现密码重置,上传镜像至glance的时候需要添加特定的metadata,添加hw_qemu_guest_agent=yes用于通知nova此镜像需要启用QGA。如果是windows镜像需要同步增加属性os_type="windows"

glance image-create --name win10-test --file windows10.qcow2 --disk-format qcow2 --container-format=bare --property os_type="windows" --property hw_qemu_guest_agent=yes –progress