標籤:openstack 教程
這是 OpenStack 實施經驗分享系列的第 2 篇。
OpenStack 通過 Glance 鏡像部署 instance,上一節我們介紹了 linux 鏡像製作方法,windows 鏡像與 linux 有很大不同,今天我們以 windows2008 為例詳細討論。
鏡像製作步驟如下:
1. 建立並運行 windows2008 KVM 虛擬機器
2. 安裝 virtio 驅動
3. 安裝 cloudbase-init
4. 其他定製工作
5. 建立 Glance 鏡像
6. 通過鏡像部署新 instance
1. 建立並運行Windows2008 KVM虛擬機器
如果有 virt-manager,這一步可以在圖形介面中完成。考慮到不是所有情況都有 virt-manager,我們這裡直接在 KVM 宿主機上操作。下面的步驟用於建立 windows2008 虛擬機器。
首先建立一塊 20G 的虛擬磁碟作為虛擬機器的啟動盤:
qemu-img create -f qcow2 /var/lib/libvirt/images/win2008r2sp1.qcow2 20G
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250888175049316.png" />
copy 虛擬機器範本
cp template.xml win2008r2sp1.xml
template.xml 這個模板怎麼來?其實很簡單,通常直接 dump 現有 kvm 虛擬機器的 xml 定義就可以了。比如:
virsh dumpxml [vm-id] > template.xml
修改win2008r2sp1.xml中以下各項:
虛擬機器名稱
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250888287019734.png" />
虛擬磁碟(前面通過 qemu-img 建立的)和啟動ISO
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250888440038612.png" />
建立虛擬機器
virsh define win2008r2sp1.xml
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250888655089078.png" />
啟動虛擬機器
virsh start win2008r2sp1
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250888734056545.png" />
通過vnc串連虛擬機器
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250888816090412.png" />
這裡 172.17.12.11 為宿主機 IP,連接埠號碼為 2(可通過 virsh vncdisplay 查詢到)。串連成功後,顯示虛擬機器安裝介面
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250888950085020.jpg" />
通過嚮導安裝作業系統,過程不再贅述。如果在安裝過程中虛擬機器沒有自動重啟,可以通過下面的命令啟動虛擬機器
virsh start win2008r2sp1
安裝成功後,設定 IP 位址
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250889098064337.png" />
2. 安裝 virtio 驅動
OpenStack 預設使用 virtio 磁碟和網卡,virtio 的效能很好。由於 windows 沒有內建 virtio 的驅動,需要手動安裝,步驟如下:
添加一個 virtio 類型的磁碟。
virsh edit win2008r2sp1
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250889325085186.png" />
修改當前的網卡裝置為 virtio。
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250889494090912.png" alt="image11.png" />
重啟作業系統,安裝 virtio 的驅動程式。
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250889580022565.png" />
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250889704062883.png" />
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250889819055980.png" />
virtio driver 的為 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250889899045282.png" />
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250889978047514.png" />
3. 安裝 cloudbase-init
cloudbase-init 使 windows 鏡像部署的 instance 能夠自動設定 IP 位址等個人化資訊。其作用與 linux 的 cloud-init 一樣,下面示範 cloudbase-init 的配置方法。
下載 cloudbase-init
https://cloudbase.it/cloudbase-init/#download
在虛擬機器中安裝 cloudbase-init
可通過遠端桌面上傳 cloudbase-init 安裝程式並安裝
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250890106088268.png" />
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250890385072081.jpg" />
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250890604012823.png" />
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250890808045502.png" />
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250890916078672.png" />
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250891096069904.png" />
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250891204030519.jpg" />
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250891388017293.png" />
系統會自動關機。
4. 其他定製工作
重新啟動虛擬機器,完成其他定製工作,比如根據需要安裝一些常用軟體等。至此,windows 鏡像檔案已經準備好,檔案路徑為
/var/lib/libvirt/images/win2008r2sp1.qcow2
5. 建立 Glance 鏡像
鏡像建立方法與上一節 linux 鏡像一樣
glance image-create --name "Windows 2008 R2 SP1" --file /var/lib/libvirt/images/win2008r2sp1.qcow2 --disk-format qcow2 --container-format bare --is-public true --progress
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250891493022383.png" />
6. 通過鏡像部署新 instance
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250891582064945.png" />
點擊鏡像後面的“啟動雲主機”按鈕。
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250891728068723.png" />
給 instance 命名,並點擊“運行”,instance 建立成功並分配到 IP。
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250891918071273.png" />
點擊 instance 名字。
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250892014055838.png" />
開啟 console。
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250892188096286.png" />
在 VNC 控制台可以看到 instance 正常啟動。
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250892351011898.jpg" />
點擊 Administrator 使用者
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250892454084228.jpg" />
第一次登入需要修改密碼。
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250892538060051.jpg" />
以上就是定製 OpenStack Windows 鏡像的操作,下一節討論幾個鏡像使用上的經驗和技巧。
650) this.width=650;" src="http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170216-1487250892631019677.jpg" />
製作 OpenStack Windows 鏡像 - 每天5分鐘玩轉 OpenStack(152)