之所以要只有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
在自己电脑的客户端上新建链接
 

 
连接后
 

我们安装企业版,因为企业版的CPU和内存支持数量可以满足中小企业的需求,标准版支持的CPU数据只有4个太少,企业版可以支持8个CPU。而已刚好我们有这个企业版的密钥,选择(完全安装)的方式带桌面,如果只装核心版的话,只就能敲cmd命令行了,连图形界面都没有。
 

走到这一步时选自定义
 

手工加载驱动
 

系统需要安装两个驱动,一个网卡,一个硬盘,由于刚才我们在跳板物理机上启动镜像时,挂了两块cdrom . 其中virtio-win-0.1-81_bak.iso就是用来装这两个驱动的。

因为Server2008版本是跟Win7一起发布的,所以我们选择win7的驱动文件夹即可

安装这两个驱动,只需选中其中一个,点下一步就是自动安装,
然后再回到浏览的界面上,再进到cdrom选中下一个驱动安装
第二个驱动是硬盘驱动,安装完后,就可以读到硬盘了。
 

不再安装驱动,我们这里就点下一步安装操作系统,直到完成,其间会发生窗口中断,不管它,是因为安装windows时它自己会尝试重启,如果它自己不懂重启,我们就上物理机上,把虚机启动
# virsh start win2k8r2
然后只需自己电脑上重连一下VNC就可以继续看到

 
最终会看到系统提示我们设置一个Administrator的密码,我设置了venic8888*
 

 
 
 
镜像启动进来后,它会自动打开这个窗口
 

我们首要任务要做的两件事就是
1、开启机器上的远程连接

2、激活产品密钥。
 

手工输MAK密钥,有个弊端,就是我们现在激动的话,它会注册本地的“计算机名称”+密钥 绑定一起上传至微软服务器,将来我们的新镜像打包上传至openstack时,重新创建虚机时,我们的“计算机名称”会跟着我们的openstack名称命名,结果就是当前的密钥匙跟将来的不一致了,密钥就会失效。
 
当然,我们有买很多2008 R2的企业版密钥,可选择不在镜像中注册秘钥,等开通虚拟机后再注册,或者购买一个可以注册很多机器的秘钥也可以,那样也省事,
 
当然,如果你们只是测试的话,我们可以使用一劳永逸的方法。
 
那就是使用网上的第三方激活工具,但第三方注册工具必须是侵权的,不推荐,但是个人的内网测试的话,还是可以实验一下的,它的钥匙跟MAK密钥 还不一样,当前的虚机的秘钥会跟着openstack新建名称的虚拟机一起生效等于永久使用。以下将这个方法贴出供大家参考,我使用网络共享文件夹的方式,从其它机器拉到这台镜像的虚拟机上,如下图所录,左边这两个工具,一个是激活工具(这个在win7 ghost盘里是自带的,叫windows loader),这个直接可以永久激活

 
激活后

先别重启先,稍后再重启
 

 
按照道理,激活后的这个镜像其实可以打包上传openstack使用了,但它不会自动弹性扩容硬盘C盘,也不会自动帮修改网卡的MAC地址(多个相同的MAC地址的虚拟机之间是无法通信的)
 
因此,我们需要再安装Cloudbase-init  这个工具是为了让openstack能够控制它metedata,与之交互,可以实现注入管理员帐号的密钥,和扩展云主机(我们C盘的硬盘大小)等等
docker官网上的文档---镜像制作指引,上有提供下载的链接,我也是先想办法下载后通过共享文件夹上传的,安装时,先一路点next

到这个地方,它指是:我们让它这个工具,可以生成一个叫admin的管理员,它也在管理员用户组里,可以通过com1进入VNC

下一步下一步就可以开始安装了。
 
安装完成后,这里有两个复选框,我来解释一下,如果勾选的话,
Cloudbase-init会把这个镜像虚拟,进行初始化,并且我们到时在openstack启动虚机时,我们还得重新设置管理员密码、激活 密钥 和做一些其它像打开远程连接的设置等,(如果你有足够的密钥,或者一直可用激活工具的话,可以勾选),这里我们不要勾选,目的就是为了,保存我们刚才已经注册好的秘钥。直接完finish完成。
 

 
接下来我们就可以把左边的两个工具删除,清空回收站,重启电脑,让密钥激活生效
重启系统后,我们再手功关机
 
 
 
接下来压缩镜像
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界面看到这个动作。这就是不用初始化,保留免注册密钥动作的代价。如果你还没有看到另一个帐号的登录界面,那就是你不小心前提登录进去了,中断了它的自动重启,需要你自己手工重启虚拟机。

openstack私有云布署实践【16.3 Windows Server2008 R2 只有C盘分区镜像制作】的更多相关文章

  1. openstack私有云布署实践【16.2 Ubuntu1404 只有根分区镜像制作】

    之所以要只有根分区镜像,是因为在创建VM或者调整云主机的硬盘大小时,它能自动扩容.无需人工介入   在原来的物理机10.40.41.1的CentOS 6.7上制作镜像. 宿主机坱要安装KVM相关软件: ...

  2. openstack私有云布署实践【16.1 CentOS7.1 只有根分区镜像制作】

    之所以要只有根分区镜像,是因为在创建VM或者调整云主机的硬盘大小时,它能自动扩容.无需人工介入   在原来的物理机10.40.41.1的CentOS 6.7上制作镜像.(当然如果你的制作镜像的宿主机是 ...

  3. openstack私有云布署实践【12.2 网络Neutron-controller节点配置(办公网环境)】

    网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...

  4. openstack私有云布署实践【12.1 网络Neutron-controller节点配置(科兴环境)】

    网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...

  5. openstack私有云布署实践【0 前言】

    管理控制层面示图: 其实在修改这个布署文档是,我发现当时生产中的布署已经严重偏离了openstack高可用的指导思想.我们自己实践的高可用其实是适应自己的架构而做的调整,因为我们现实手头上中没有比较符 ...

  6. openstack私有云布署实践【9.3 主从controller单向同步glance-image目录】

    采用Rysnc单向同步,而不用双方实时同步,原因是在历史的运行过程中,我们发现,有些镜像包太大,当在主用的glance将镜像保存时,并不是一时半会就把镜像保存好,当主用在保存时,备用节点又在实时同步那 ...

  7. openstack私有云布署实践【15 创建租户网络+实例】

    这里以办公网测试环境为例,   (一)创建租户demo的网络   使用admin用户 source admin-openrc.sh 创建public公网 neutron net-create 1040 ...

  8. openstack私有云布署实践【19 通过python客户端 创建实例VM指定IP地址】

    还有一种创建方式 是使用py开发工具,调用openstackclient的方法进行创建实例 ,好处就是可随意指定我们要的虚拟机IP地址,需求的场景就是,某天我们需要主动分配一个比较熟知的IP用作某个服 ...

  9. openstack私有云布署实践【11.3 计算nova - compute节点-nova用户免密登录(用于云主机冷迁移+扩展云主机大小)】

    云主机迁移+扩展云主机大小 ,官方说它依赖nova用户之间的免密登录.确保每个resion区域的compute节点服务器他们可以相互SSH免密   compute1-7     他们相互SSH免密 k ...

随机推荐

  1. c内存结构

    每个进程都运行在自己私有的内存空间中(即虚拟地址空间).在32位系统中,4GB的进程地址东健被分为用户空间和内核空间两个部分.用户空间占据着 0~3GB(用16进制表示为0xC0000000),而内核 ...

  2. 【转】Objc的底层并发API

    本文由webfrogs译自objc.io,原文作者Daniel Eggert.转载请注明出处! 小引 本篇英文原文所发布的站点objc.io是一个专门为iOS和OS X开发者提供的深入讨论技术的平台, ...

  3. warfare(最大生成树裸题)

                                                                                                  战争 [问题 ...

  4. DevExpress 学习使用之 PrintSystem

    这是来自群里边的一段,收集起来,碎片知识是很珍贵的.  傷心孤影(2072201)  16:14:41导出excel加标题用PrintableComponentLink小宝(462561442)  1 ...

  5. python学习之路二(字符串,字典,序列和元组)

    # -*- coding: utf-8 -* ''' Created on 2013-7-26 @author: lixingle ''' #!/usr/bin/python import math# ...

  6. 使用EntityFramework持久化聚合

    目录 背景使用EntityFramework持久化聚合备注 背景返回目录 DDD中只有聚合根可以有仓储,仓储负责整个聚合持久化的相关生命周期,在不使用工作单元或POCO的情况下,我们可以让Order内 ...

  7. kindeditor使用方法

    一.下载编辑器 下载KindEditor最新版本(本版本为4.1.10) 下载页面:http://kindeditor.net/down.php 二.部署编辑器 解压kindeditor-x.x.x. ...

  8. 5款最好用的开源Web快速开发工具

    1.Aptana Studio Aptana是一个用于HTML,CSS和JavaScript的网站开发工具.目前在社区里有成千上万的人在开发Aptana的插件. Apatana Studio官网:ht ...

  9. sql server DateTime相关内置函数总结

    本文部分内容参考msdn帮助文档和博客园!汇总备忘 1.获取当前日期      getdate()函数以datetime数据类型的格式返回当前SQLServer服务器所在计算机的日期和时间.其语法格式 ...

  10. Dispose模式

    Dispose模式 Dispose模式是.NET中很基础也很重要的一个模式,今天重新复习一下相关的东西并记录下来. 什么是Dispose模式? 什么时候我们该为一个类型实现Dispose模式 使用Di ...