直接用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处于同一网段的计算机即可远程连接管理
五、终于写完了~~~