直接用Windows的iso文件创建实例是创建不出来的,需要先在kvm下创建qcow2格式的虚拟机,然后用已经创建好的虚拟机文件当做OpenStack的镜像来创建实例就好了。

首先第一点是需要有一台Linux服务器,我这里选择的是centos7,直接在VMware下用,没错,就是在虚拟机下再套一层虚拟机,如果你有Linux物理机,那再好不过了。
创建镜像前的准备工作:

1、Windows10的iso文件,可以在msdn.itellyou.cn上下载

2、centos虚拟机或物理机

3、cloudbaseinitSetup.msi(用于打包镜像)

4、vnc viewer

上述软件在此全部不提供下载地址,请自行上网查找

正式安装:

一、VMware的设置:

  1、打开vnc连接设置(在虚拟机的选项里面):

  

  2、内存分配尽可能的大(我这里centos7是用的8G的,这样就可以给虚拟机内的虚拟机多分一点了)

  3、在处理器选项中勾选“虚拟化引擎”下面的选项,处理器分配4个核心

  4、推荐多创建一个网络适配器:一个桥接,一个NAT

二、制作带驱动的Windows镜像:

  1、下载ultraISO,用ultraISO打开下载好的镜像

  2、找到sources文件夹,将里面的boot.wim复制出来

  3、在D盘下创建mnt文件夹,作为boot.wim内容的挂载点

  4、使用管理员身份打开命令提示符

  5、在centos中执行:yum -y install https://fedorapeople.org/groups/virt/virtio-win/repo/stable/virtio-win-0.1.96-1.noarch.rpm,去/usr/share/virtio-win/virtio-win-0.1.96.iso路径下将驱动的iso文件拷出来解压

  6、需要的驱动文件:磁盘驱动:virtio-win-0.1.96\viostor\w10\amd64,网卡驱动:virtio-win-0.1.96\NetKVM\w10\amd64

  7、执行(都要执行):

    dism /mount-wim /wimfile:D:\boot.wim /index:1 /mountdir:D:\mnt

    dism /image:D:\mnt /add-driver /driver:D:\win\net\amd64\netkvm.inf

    dism /image:D:\mnt /add-driver /driver:D:\win\disk\amd64\viostor.inf

    dism /unmount-wim /mountdir:D:\mnt /commit

    ===================================================

    dism /mount-wim /wimfile:D:\boot.wim /index:2 /mountdir:D:\mnt

    dism /image:D:\mnt /add-driver /driver:D:\win\net\amd64\netkvm.inf

    dism /image:D:\mnt /add-driver /driver:D:\win\disk\amd64\viostor.inf

    dism /unmount-wim /mountdir:D:\mnt /commit

  8、将boot.wim覆盖到iso中的原来位置

  9、将解压后的驱动文件拷贝到win10 iso文件的support目录下

  10、将更改后的iso另存为新iso文件(需要ultraISO的激活版)

三、在centos7中安装虚拟机:

  1、 安装需要的软件:

    yum install -y qemu-kvm.x86_64 qemu-kvm-tools.x86_64

    yum install libvirt.x86_64 libvirt-cim.x86_64

    yum install libvirt-client.x86_64 libvirt-java.noarch libvirt-python.x86_64

    yum install virt-manager

    yum install guestfish libguestfs-tools

  2、设置虚拟机的网络

    1、选择虚拟机中桥接的网卡,执行命令:cp /etc/sysconfig/network-scripts/ifcfg-xxxx /etc/sysconfig/network-scripts/ifcfg-br0

    2、更改原网卡的配置:vi /etc/sysconfig/network-scripts/ifcfg-xxxx,将IPADDR、PREFIX、GATEWAY、DNS相关的注释掉,增加BRIDGE=br0

    3、更改桥接网卡的配置:vi /etc/sysconfig/network-scripts/ifcfg-br0,将Type更改为TYPE=Bridge,将UUID注释掉

    4、重启网络:systemctl restart network

  3、可以使用图形界面,也可以使用命令行(推荐使用图形界面):

    1、图形界面安装步骤

    打开虚拟系统管理器

    

    创建新的虚拟机

    

    手动选择操作系统

    

    在合适的位置创建win10的卷,并设置合适的大小,20个G足够了

    

      创建win10的卷完成后选择win10的镜像文件,进入下一步

    分配虚拟机占用的资源

    

    勾选安装前自定义配置

    

    进入配置页面

    更改引导选项,使用光盘引导启动

    

    磁盘总线选择IDE

    

    虚拟磁盘总线选择VirtIO

    

    虚拟网络指定前面设置的网桥的名称

    

    打开vnc服务器

    

    注意:每更改一个配置都要点一下应用,最后检查配置没有问题的话就直接点上面的开始安装就好了(我这里是安装好的,所以没有开始安装的按钮了)

    2、命令行安装步骤:

      1、创建虚拟磁盘:qemu-img create -f qcow2 win10.qcow2 20G

      2、创建虚拟机:virt-install

          ·    --name=win10

              --ram=4096

              --vcpu=2

              --os-type=windows

              --os-variant=win10

              --disk win10.qcow2,bus=virtio

              --disk win10-kvm.iso,device=cdrom,bus=ide

              --bridge=br0,model=virtio

              --graphics vnc,listen=0.0.0.0

              --noautoconsole

  4、图形界面安装的不需要vnc viewer,可以直接在图形界面里看着安装,因为boot.wim里面已经成功添加了磁盘和网络的驱动了,所以就执行正常的安装步骤就好了,如果你用命令行安装的话就需要用vnc viewer安装了,连接桥接的网卡的ip即可,其余也是正常的Windows的安装步骤

  5、安装完成后要干的事情:

    1、打驱动,打开设备管理器中出现感叹号的设备添加驱动即可(去镜像文件的supports里面找,win10会自动查找到可以使用的驱动的)

    2、给当前用户设置密码,便于远程管理用

    3、把防火墙关掉(如果不嫌麻烦的话,也可以设置防火墙规则)

    

    4、允许远程连接

    

    5、使用远程连接将下载的cloudbaseinitsetup.msi文件上传到虚拟机中并安装,安装的结尾记得勾选最后两个复选框

    6、等待打包完成,完成后虚拟机将被关闭

  6、使用sftp工具将qcow2文件拷贝出来,这就是所需要的win10镜像

四、OpenStack创建win10实例

  1、首先登录管理员账户将镜像上传到OpenStack中(因为镜像很大,所以需要一定的时间)

  2、按需创建Windows实例(创建镜像时分配的资源不会影响到这里的,这里分配多少资源实际就是使用多少资源)

  3、创建安全组,将3389(远程端口)和ICMP(用于ping的端口)放开,其余的根据业务需要选择放通或关闭

  4、这里没有安装步骤,直接启动即可

  5、neutron会给实例分配一个内网的ip,将这个ip、mask和gateway作为静态地址设置到Windows实例中,首选dns填网关地址

  6、给当前实例分配浮动ip

  7、用与浮动ip处于同一网段的计算机即可远程连接管理

五、终于写完了~~~

 

OpenStack创建Win10实例的更多相关文章

  1. OpenStack之九: 创建一个实例

    官网地址 https://docs.openstack.org/install-guide/launch-instance-networks-provider.html #:导入变量 [root@co ...

  2. 云计算---记一次黑客攻击openstack创建的虚拟机

    一:问题定位 现象: 近期发现有几台openstack云主机被修改密码并被肉鸡. 黑客操作日志: -- :: ##### root tty1 : #### -- :: top -- :: ##### ...

  3. 云计算管理平台之OpenStack启动虚拟机实例

    在前边的博客中,我们主要聊了下openstack的基础环境.核心服务(认证服务keystone/镜像服务glance/计算服务nova/网络服务neutron)的安装配置:回顾请查看前边的博客:今天我 ...

  4. Openstack 启动一个实例(九)

    Openstack 启动一个实例(九) 创建一个提供者网络: # 创建一个提供者网络: openstack network create --share --external --provider-p ...

  5. EntityFramework Core 1.1是如何创建DbContext实例的呢?

    前言 上一篇我们简单讲述了在EF Core1.1中如何进行迁移,本文我们来讲讲EF Core1.1中那些不为人知的事,细抠细节,从我做起. 显式创建DbContext实例 通过带OnConfiguri ...

  6. 单机静默安装GI软件并创建ASM实例和ASM磁盘组

    环境:RHEL 6.4 + Oracle 11.2.0.4 需求:单机静默安装GI软件并创建ASM实例和ASM磁盘组,为后续迁移数据库文件到ASM做准备 1. 安装配置GI软件 2. 创建ASM实例 ...

  7. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值

    前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...

  8. 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

    本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...

  9. C#创建委托实例

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyDe ...

随机推荐

  1. WPF---数据绑定(二)

    一.绑定到非UI元素 上篇中,我们绑定的数据源均是派生自UIElement的WPF元素.本篇描述的绑定数据源是一个我们自定义的普通的类型. 注:尽管绑定的数据源可以是任意类型的对象,但Path必须总是 ...

  2. 1、Spark简介(Python版)

    此文为个人学习笔记如需系统学习请访问http://dblab.xmu.edu.cn/blog/1709-2/ Spark具有如下几个主要特点:  运行速度快    Spark使用先进的DAG(Dir ...

  3. Go错误处理正确姿势

    1. panic 在什么情况下使用panic? 在程序启动的时候,如果有强依赖的服务出现故障时panic退出 在程序启动的时候,如果发现有配置明显不符合要求,可以panic退出(预防编程) 其他情况下 ...

  4. opengl中标准矩形像素点手动网格化为三角形条带的实现

    这里以一张矩形图片为例进行说明: 一张图片的像素点是孤立的,导入opengl中进行绘制出来,看起来没问题,但是当我们放大图片时候,显示的就是一个个孤立的点,而没有像看图软件放大图片那样看起来还是连续的 ...

  5. 存储系统管理(一)——Linux系统的设备和分区管理

    1.设备名称的理解 /dev/sda1? sata硬盘,a1表示第一块硬盘中的第一个分区 /dev/cdrom 光驱 /dev/mapper/*? 系统中的虚拟设备 2.发现系统中的设备 ? fdis ...

  6. Django——cookie保持登录

    普通登录时,无法保持登录的状态,每一次请求时都需要重新登录. 而在登录时,生成cookie并保存在浏览器中,这样每次登录就会携带登录信息,就可以保持登录状态了. 操作cookie语法: # (1) 设 ...

  7. Golang入门学习(五):异常处理

    文章目录 2.5 错误处理机制 2.5.1 基本说明 2.5.2 入门示例 2.5.3 自定义错误 2.5 错误处理机制 2.5.1 基本说明 Go语言追求简洁优雅,因此并不支持传统的try-catc ...

  8. tornado2.2安装教程

    最近要用到vxworks 系统,所以避免不了要安装tornado 软件,进行相关的开发. 自己在安装过程中遇到了点点问题,这里记录下来,免得以后再次安装时遇到同样的问题. 1.   首先提供一个tor ...

  9. 安全系列之:跨域资源共享CORS

    目录 简介 CORS举例 CORS protocol HTTP request headers HTTP response headers 基本CORS Preflighted requests 带认 ...

  10. 常见shell脚本测试题 for/while语句

    1.计算从1到100所有整数的和2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和3.求从1到100所有整数的偶数和.奇数和4.执行脚本输入用户名,若该用户存在,输出提示该用户已存 ...