虛擬機自定義鏡像(Image)是一個頗有用的功能,能夠在一臺虛擬機上配置好基本的系統環境,而後作個鏡像,之後建立虛擬機直接從這個鏡像建立,會省掉不少重複的配置工做。html
阿里雲與UCloud都有這個功能,Azure固然也少不了,這也是雲服務商標配的免費服務。web
下面咱們分享一下咱們在Azure中試用「製做虛擬機自定義鏡像」功能的經歷。windows
(一)準備工做服務器
建立一臺原裝虛擬機,假設名叫blogserver1。建立好以後,登陸進去進行基本部署環境的配置,好比安裝IIS並進行相關配置(支持高併發的IIS Web服務器經常使用設置)。併發
(二)在不看任何幫助文檔的狀況下憑使用直覺進行操做ide
一、進入VIRTUAL MACHINES -> IMAGES,點擊CREATE;輸入IMAGE NAME,選擇以前建立的blogserver1虛擬機的VHD URL,選中「I have run Sysprep on the virtual machine associated with this VHD.」(見下圖)高併發
二、點擊Ok按鈕。。。建立失敗,錯誤信息以下:ui
VHD http://..../vhds/blogserver-blogserver1-2013-09-11.vhd 已做爲 ID 爲 blogserver1-blogserver1-0-201309110319510234 的資源註冊到映像存儲庫。this
錯誤提示信息讓人不知所措。阿里雲
關閉blogserver1虛擬機進行操做,也是一樣的錯誤。
幾經折騰無果,放棄。
(三) 在幫助文檔下進行操做
幫助文檔來自How to Capture an Image of a Virtual Machine Running Windows Server。
一、遠程桌面登陸至虛擬機,進入 C:\Windows\System32\Sysprep\ 目錄,運行sysprep.exe,選中Generalize,選擇Shutdown(見下圖)。
二、點擊Ok以後,進行Sysprep操做(見下圖)。。。過了一會,遠程桌面失去了鏈接。
三、等了大約20分鐘左右(因爲沒有進度指示,這個等待過程有點難受),在Azure管理控制檯看到blogserver1的狀態因爲Running變爲Stopped。
四、這時虛擬機管理控制檯的CAPTURE按鈕變亮,點擊一下,出現以下的畫面:
五、指定IMAGE NAME爲webserver,選中「I have run Sysprep on the virtual machine」,而後看到IMPORTANT NOTE:
The virtual machine will be deleted when the image is captured.
因爲上午發了一篇不專業的臨時工水準的隨筆——雲計算之路-試用Azure:每一次刪除都讓人如此心驚,才知道了刪除虛擬機的真相,如今就能夠坦然面對了。
六、片刻工夫,虛擬機建立完畢。
七、從這個名爲webserver自定義鏡像建立虛擬機blogserver2。
八、建立成功
(三)恢復原裝虛擬機blogserver1
用於製做鏡像的blogserver1虛擬機在建立鏡像時被刪除了,如今經過「CREATE A VIRTUAL MACHINE from MY DISKS」把它恢復起來。
當blogserver1虛擬機正常運行以後,用遠程桌面進行登陸,結果怎麼登陸也登陸不上,每次都提示用戶名/密碼錯誤。爲了不再次發臨時工水準的文章,通過了屢次確認,確認用戶名/密碼沒有錯。難道在製做鏡像進行Sysprep的過程當中,Windows管理員賬戶的密碼被重置了?而咱們沒法驗證這一點,由於在Azure中沒法重置虛擬機的管理員密碼。只能讓這臺虛擬機報廢。
(四)試用感言
咱們設想的製做虛擬機自定義鏡像的功能應該是這樣的:選擇一臺虛擬機,點擊「製做鏡像」,而後去一下洗手間,回來以後「鏡像」就建立好了。
建立鏡像居然把運行中的原裝虛擬機給刪除了,恢復以後還連不上,也就是說虛擬機要爲製做鏡像「獻身」。在阿里雲沒遇到過,在UCloud也沒碰到過,只有Azure,並且在阿里雲/UCloud中製做鏡像時對當前這臺正常運行的虛擬機沒有任何影響。Azure在這個功能的設計上須要改進。
另外,咱們的Azure試用系列博文只是表達咱們試用時的真正感覺,並無說咱們的試用是專業的。微軟也沒有說Azure只適合專業人員用,不適合臨時工用。做爲一名用戶,發現問題就吐槽,也不爲過。好的產品不是讚美出來的,而是在解決用戶各類刁鑽的問題中成長出來的。