https://docs.openstack.org/image-guide/windows-image.html
這里以 windows 2008為例:
准備工作:
1准備好windows 2008 r2 ISO鏡像文件
2 下載VirtIO網卡驅動 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
官網地址:https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html
創建KVM虛擬機
qemu-img create -f qcow2 /vm/win2008.qcow2 15G
virt-install --connect qemu:///system --name win2008 --ram 4096 --vcpus 2 --network network=default,model=virtio --disk path=/vm/win2008.qcow2,format=qcow2,device=disk,bus=virtio --cdrom /usr/local/src/cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_vl_build_x64_dvd_617396.iso --disk path=/usr/local/src/virtio-win-0.1.141.iso,device=cdrom, --vnc --vncport=5993 --vnclisten=0.0.0.0 --os-type windows --os-variant win2k8 --boot cdrom
引導失敗:

處理方法: 思路選擇確定boot的類型,再查看光盤的盤符順序
把硬盤與安裝鏡像的dev盤符調換下
virsh destroy ws2008
vi /etc/libvirt/qemu/ws2008.xml
virsh define /etc/libvirt/qemu/ws2008.xml
virsh start s2008
再重新安裝
把virtio-win-0.1.141-2.iso 與 cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_vl_build_x64_dvd_617396.iso dev盤符調換下
<boot dev='hd'/> 改成 <boot dev='cdrom'/> ,安裝好后,再把這個參數改回來


重啟時從CDROM啟動,即不要按任何鍵
安裝網卡驅動



然后用vnc連接 KVM_IP:5992
手動安裝相關軟件
安裝Cloudbase-Init
下載 安裝cloudbase-init安裝 https://cloudbase.it/downloads/CloudbaseInitSetup_Stable_x64.msi
雙擊CloudbaseInitSetup_Stable_x64.msi

- Username:
Administrator - Network adapter to configure:
Red Hat VirtIO Ethernet Adapter - Serial port for logging:
COM1

清理完成后,系統自動關機
如果sysprep標准化關機有問題,也可以手動執行以下命令進行sysprep標准化。
c:\windows\system32\sysprep\sysprep /oobe /generalize /quiet /shutdown
配置Cloudbase-init工具
- 在cloudbase-init安裝路徑的配置文件“C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf”的最后一行,增加配置項“netbios_host_name_compatibility=false”,使Windows系統的hostname長度支持到63個字符。
說明:
NetBIOS長度受Windows系統本身的限制還只支持小於等於15個字符。
- 在cloudbase-init安裝路徑的配置文件“C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf”中增加配置項“metadata_services=cloudbaseinit.metadata.services.httpservice.HttpService”,配置agent訪問openstack數據源。
- (可選)當cloudbase-init為0.9.12及以上版本時,用戶可以自定義配置密碼長度。在cloudbase-init安裝路徑的配置文件“C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf”里修改配置項“user_password_length”的值,完成密碼長度的自定義配置。
- (可選)選擇密碼注入方式首次登錄時,系統默認強制用戶修改登錄密碼,若用戶根據個人意願,不需要修改首次登陸使用的登錄密碼時,可關閉此功能。在cloudbase-init安裝路徑的配置文件“C:\Program Files\Cloudbase Solutions\Cloudbase-Init\conf\cloudbase-init.conf”配置里增加配置項“first_logon_behaviour=no”。
- 為了防止鏡像中DHCP租期過長導致創建的雲服務器無法正確的獲取地址,用戶需要釋放當前的DHCP地址。
在windows命令行中,執行以下命令釋放當前的DHCP地址。
ipconfig /release
上傳鏡像:
. /etc/kolla/admin-openrc.sh
openstack image create --disk-format qcow2 --file /vm/ws2008.qcow2 WS2008 --public
virsh destroy vm_name #強制關閉虛擬機
virsh undefine vm_name #刪除虛擬機
qemu虛擬機配置文件目錄:
/etc/libvirt/qemu/
應用修改后的xml文件
virsh define /etc/libvirt/qemu/centos7.xml
查看容器的啟動參數:
在容器外部,物理機上,可以用docker inspect查看或者,docker inspect container
建虛擬機實例:
指定密碼,用戶即上面設置的Username
元數據項,添加一個
admin_pass 值為你的密碼,密碼要符合復雜性要求
第一次登錄系統會要求你更改密碼

