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 值为你的密码,密码要符合复杂性要求
第一次登录系统会要求你更改密码