基础环境安装

yum groupinstall Virtualization "Virtualization Client"
yum install libvirt

启动服务

systemctl enable libvirtd
systemctl start libvirtd
systemctl status libvirtd

系统镜像准备

需要准备的东西有三样,Windows的系统镜像、windows兼容驱动、Cloudbase初始化程序,材料都帮你准备好了,就在下方的百度云链接里,还附带已经做好了的Windows Server 2012r2镜像

链接: https://pan.baidu.com/s/1sTAGZsTaTYINVEtSCjKvYA

访问我的博客获取 关注公众号 “akim同学” 回复 “windows_image_for_openstack” 即可获得网盘分享密码

创建磁盘文件

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

启动虚拟机

# 把已存在的虚拟机删除,避免冲突
virsh destroy ws2012r2
virsh undefine ws2012r2

# 启动虚拟机
virt-install --name=ws2012r2 --ram=2048 --cpu=host --vcpus=2 \
 --os-type=windows --os-variant=win2k12r2 \
 --disk /data/ws2012r2.qcow2,bus=virtio \
 --disk /data/cn_windows_server_2012_r2_datacenter_with_update_x64_dvd_4048415.iso,device=cdrom,bus=ide \
 --disk /data/virtio-win-0.1.126.iso,device=cdrom,bus=ide \
 --network network=default,model=virtio \
 --graphics vnc,listen=0.0.0.0 --noautoconsole

安装系统

netstat -ntlp | grep qemu-kvm查找到虚拟机的vnc端口为5900,使用tigerVNC进行连接,并在控制台完成系统安装。ip就是服务器的ip,端口默认第一个为5900以此类推,也可以通过命令virsh vncdisplay vmname查询端口,推荐使用tigervnc来打开。

驱动添加

由于windows并不自带openstack的驱动,系统启动后无法识别到硬盘,需要手动加载virtio驱动;并且网卡驱动也需要使用virtio驱动。因为前面启动虚拟机时已经挂载了virtio镜像,这里可以直接到计算机里面全安装。

硬盘驱动添加(安装时完成)

点击 浏览--光驱vortio-win-0.1.1, 定位到viostor\sk12R2\amd64 硬盘驱动路径

选择加载的驱动 选择驱动

点击下一步就可以识别到硬盘了 选择硬盘

安装完成,系统进入登录界面,使用F8快捷键召唤 TigerVNC菜单,选择Send Ctrl+Alt+Del 安装成果

网卡驱动更新(进入系统后完成)

在设备管理的以太网控制器上右键,浏览到光驱下面的NetKVM,选择2k12R2 网卡驱动路径

确认安装 确认安装

在安装cloudbase-init之前要做好系统的设置(根据场景需求),主要是以下几点: 1.关闭防火墙 2.开启远程桌面 3.安装常用软件(如:防病毒、基线核查等) 4.组策略、本地策略等设置

安装cloudbase-init

双击msi文件安装cloudbase-init,按照如下截图选择 cloudbase配置

选择清理关机

压缩镜像

virt-sparsify --compress /data/ws2012r2.qcow2 /data/Windows-Server-2012r2.qcow2

添加镜像到glance

# 载入凭证
source admin-oprc

# 上传镜像
openstack image create "Windows Server 2012r2" --file Windows-Server-2012r2.qcow2 --disk-format qcow2 --container-format bare --public

测试

创建实例的时候记得需要设置元数据admin_pass重置密码,如下图 设置元数据

首次登录需要设置密码,这里要后退用元数据的密码登录再修改(不知道为什么,有大神可以告诉我吗。。。。)

成功