直接用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處於同一網段的計算機即可遠程連接管理
五、終於寫完了~~~