之所以要只有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. ODP.NET

    1,什么是ODT?就是Oracle 为 .NET (ODP.NET) 专门编写了 Oracle Data Provider,一个用于 Microsoft .NET 环境下的 Oracle 数据访问 A ...

  2. Task.WhileAll扩展方法

    TPL实现Task.WhileAll扩展方法 文章翻译整理自 Nikola Malovic 两篇博文: Task.WhileAll Awaitable task progress reporting ...

  3. JavaScript原生对象拓展

    JavaScript原生对象拓展 在据说每个大牛.小牛都应该有自己的库——框架篇中我扬言要做个小牛,没想到一天没更新,小伙儿伴们就戏谑的问我,油哥是不是要太监了?其实事情是这个样子的,这不是太监的节奏 ...

  4. .NET中 类型,对象,线程栈,托管堆在运行时的关系

    .NET中 类型,对象,线程栈,托管堆在运行时的关系 The Relationship at Run Time between Types,Objects,A Thread's Stack,and T ...

  5. [置顶] Oracle学习路线与方法

    还没有整理好.... 1.学习路线 Oracle官方文档:2 Day DBA-->2 Day+Performance Tuning Guide--->Administrator's Gui ...

  6. OpenCV 4 Python高级配置—安装setuptools,matplotlib,six,dateutil,pyparsing 完整过程

    Matplotib 是python 的一个绘图库,里头有各种各样的绘图方法,可以用Matplotib 显示图像,放大图像,保存图像等等,对于OpenCV处理图像具有非常大的帮助.但是,安装Matplo ...

  7. 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题

    如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题 在android中有时候可能要实现一个底部弹 ...

  8. 飘逸的python - 简明gzip模块压缩教程

    压缩数据创建gzip文件 先看一个略麻烦的做法 import StringIO,gzip content = 'Life is short.I use python' zbuf = StringIO. ...

  9. PPT资料下载 - 问题驱动的软件测试设计:强化测试用例设计

    测试用例设计是整个软件测试过程中非常重要的测试活动,需求规格说明是测试人员开展测试设计的主要参考输入.而在测试实践中基于需求规格说明得到的测试用例,在测试覆盖率.测试效率.测试有效性和测试质量等方面的 ...

  10. C++malloc,calloc,realloc,free函数

    在进行C/c++编程的时候,需要程序员对内存的了解比较清楚,经常需要操作的内存可分为下面几个类别:     1.堆栈区(stack):由编译器自动分配与释放,存放函数的参数值,局部变量,临时变量等等, ...