直接用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處於同一網段的計算機即可遠端連線管理

五、終於寫完了~~~