openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】

时间:2021-09-25 07:28:54
之所以要只有C盘分区镜像,是因为在创建VM或者调整云主机的硬盘大小时,它能自动扩容。无需人工介入
 
 
在原来的物理机10.40.41.1的CentOS 6.7上制作镜像。
宿主机坱要安装KVM相关软件:
yum groupinstall Virtualization "Virtualization Client" -y
yum install libvirt libguestfs-tools qemu virt-manager virt-viewer qemu-kvm virt-install bridge-utils -y
service libvirtd start
chkconfig libvirtd on
 
材料有
cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x64_dvd_617598.iso------itellyou.cn上有得下载
 
virtio-win-0.1-81.iso-------百度上找的下载
 
上传至10.40.41.1的物理机上的/home目录下
 
     
创建镜像的硬盘文件
cd /mnt/sdf1/win2k8/
qemu-img create -f qcow2 win2k8.qcow2 40G
 
 
创建虚拟机
 
virt-install --connect qemu:///system --virt-type=kvm \
--name win2k8 --ram 4096 --vcpus 2 --arch=x86_64 \
--network  bridge=kvmbr0,model=virtio \
--disk /mnt/sdf1/win2k8/win2k8.qcow2,format=qcow2,device=disk,bus=virtio \
--cdrom /home/cn_windows_server_2008_r2_standard_enterprise_datacenter_and_web_with_sp1_x64_dvd_617598.iso \
--disk=/home/virtio-win-0.1-81.iso,device=cdrom,perms=ro \
--graphics spice,listen=0.0.0.0 --video qxl --channel spicevmc \
--os-type windows --os-variant win2k8
 
 
在本地Win7上安装SPICE客户端(下载链接 https://fedorahosted.org/released/virt-viewer/),Linux系统可在GUI界面下安装virt-viewer
安装完成后,运行 Remote viewer
我下载的是最新的msi版本。安装在win7电脑后,通过在跳板物理机上 virsh domdisplay win2k8先查看到这个虚拟机使用的SPICE端口号是5900
在自己电脑的客户端上新建链接
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 
连接后
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
我们安装企业版,因为企业版的CPU和内存支持数量可以满足中小企业的需求,标准版支持的CPU数据只有4个太少,企业版可以支持8个CPU。而已刚好我们有这个企业版的密钥,选择(完全安装)的方式带桌面,如果只装核心版的话,只就能敲cmd命令行了,连图形界面都没有。
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
走到这一步时选自定义
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
手工加载驱动
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
系统需要安装两个驱动,一个网卡,一个硬盘,由于刚才我们在跳板物理机上启动镜像时,挂了两块cdrom . 其中virtio-win-0.1-81_bak.iso就是用来装这两个驱动的。
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】

openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】

openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
因为Server2008版本是跟Win7一起发布的,所以我们选择win7的驱动文件夹即可
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】

openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】

openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
安装这两个驱动,只需选中其中一个,点下一步就是自动安装,
然后再回到浏览的界面上,再进到cdrom选中下一个驱动安装
第二个驱动是硬盘驱动,安装完后,就可以读到硬盘了。
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
不再安装驱动,我们这里就点下一步安装操作系统,直到完成,其间会发生窗口中断,不管它,是因为安装windows时它自己会尝试重启,如果它自己不懂重启,我们就上物理机上,把虚机启动
# virsh start win2k8r2
然后只需自己电脑上重连一下VNC就可以继续看到
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 
最终会看到系统提示我们设置一个Administrator的密码,我设置了venic8888*
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 
 
 
镜像启动进来后,它会自动打开这个窗口
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
我们首要任务要做的两件事就是
1、开启机器上的远程连接
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】

openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】

openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
2、激活产品密钥。
 openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
手工输MAK密钥,有个弊端,就是我们现在激动的话,它会注册本地的“计算机名称”+密钥 绑定一起上传至微软服务器,将来我们的新镜像打包上传至openstack时,重新创建虚机时,我们的“计算机名称”会跟着我们的openstack名称命名,结果就是当前的密钥匙跟将来的不一致了,密钥就会失效。
 
当然,我们有买很多2008 R2的企业版密钥,可选择不在镜像中注册秘钥,等开通虚拟机后再注册,或者购买一个可以注册很多机器的秘钥也可以,那样也省事,
 
当然,如果你们只是测试的话,我们可以使用一劳永逸的方法。
 
那就是使用网上的第三方激活工具,但第三方注册工具必须是侵权的,不推荐,但是个人的内网测试的话,还是可以实验一下的,它的钥匙跟MAK密钥 还不一样,当前的虚机的秘钥会跟着openstack新建名称的虚拟机一起生效等于永久使用。以下将这个方法贴出供大家参考,我使用网络共享文件夹的方式,从其它机器拉到这台镜像的虚拟机上,如下图所录,左边这两个工具,一个是激活工具(这个在win7 ghost盘里是自带的,叫windows loader),这个直接可以永久激活
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 
激活后
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
先别重启先,稍后再重启
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 
按照道理,激活后的这个镜像其实可以打包上传openstack使用了,但它不会自动弹性扩容硬盘C盘,也不会自动帮修改网卡的MAC地址(多个相同的MAC地址的虚拟机之间是无法通信的)
 
因此,我们需要再安装Cloudbase-init  这个工具是为了让openstack能够控制它metedata,与之交互,可以实现注入管理员帐号的密钥,和扩展云主机(我们C盘的硬盘大小)等等
docker官网上的文档---镜像制作指引,上有提供下载的链接,我也是先想办法下载后通过共享文件夹上传的,安装时,先一路点next
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
到这个地方,它指是:我们让它这个工具,可以生成一个叫admin的管理员,它也在管理员用户组里,可以通过com1进入VNC
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
下一步下一步就可以开始安装了。
 
安装完成后,这里有两个复选框,我来解释一下,如果勾选的话,
Cloudbase-init会把这个镜像虚拟,进行初始化,并且我们到时在openstack启动虚机时,我们还得重新设置管理员密码、激活 密钥 和做一些其它像打开远程连接的设置等,(如果你有足够的密钥,或者一直可用激活工具的话,可以勾选),这里我们不要勾选,目的就是为了,保存我们刚才已经注册好的秘钥。直接完finish完成。
 openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】
 
接下来我们就可以把左边的两个工具删除,清空回收站,重启电脑,让密钥激活生效
重启系统后,我们再手功关机
 
 
 
接下来压缩镜像
qemu-img convert -c -p -O qcow2 /mnt/sdf1/win2k8/win2k8.qcow2 /mnt/sdf1/win2k8/win2k8r2.qcow2
 
 
上传至controller,并导入镜像
 
 
 glance image-create --name "win2k8r2" \
  --file win2k8r2.qcow2 \
  --disk-format qcow2 --container-format bare \
  --visibility public --progress
 
 
因为我们一开始在cloudbase-init没有把镜像进行初始化,所以在初次在dashboard创建虚拟机实例时,它会在1分钟内自动重启1次的机器,用来修改主机名称,以及2分钟后重启,生成另一个管理员帐号+重置网卡物理信息,(http://cloudbase-init.readthedocs.io/en/latest/plugins.html有说明)可以从VNC界面看到这个动作。这就是不用初始化,保留免注册密钥动作的代价。如果你还没有看到另一个帐号的登录界面,那就是你不小心前提登录进去了,中断了它的自动重启,需要你自己手工重启虚拟机。