在 Windows Azure 上部署并定制化 FreeBSD 虚拟机镜像
FreeBSD 基礎(chǔ)鏡像現(xiàn)已登陸中國的 VM Depot! 對于青睞 BSD 而非 Linux 的開源愛好者來說,這無疑是個好消息。同時,隨著該基礎(chǔ)鏡像的可用,我們期待很快看到更多來自社區(qū)的基于 FreeBSD 的開源鏡像,從而更加充實現(xiàn)有的可用 Linux 鏡像。
本教程將幫助您使用 VM Depot 鏡像快速上手 Azure 平臺上的 FreeBSD,具體操作包括:
設(shè)置要求
- Node.js
- Microsoft Azure 訂閱
更多詳細信息,請閱讀以下說明。若您已滿足以上要求,請直接跳轉(zhuǎn)至“在 Windows Azure 上創(chuàng)建 FreeBSD 虛擬機”部分。
Node.js?跨平臺命令行工具
盡管大部分工作可以在?Azure 管理門戶上進行,本例中我們還是使用跨平臺的 node.js 命令行工具。本教程只涉及很少一部分命令行工具。更多信息,請查看跨平臺 Azure 命令行工具使用文檔。
如果您使用的是 Mac 或 Windows 系統(tǒng),您可以使用下面提到的 Node 包管理器(NPM),或者選擇您使用平臺(Windows或Mac)自身的安裝程序,然后直接跳轉(zhuǎn)至下一節(jié)內(nèi)容。若您傾向于使用 NPM,請繼續(xù)閱讀本節(jié)內(nèi)容。
登錄站點?node.js,點擊“安裝”按鈕,依照安裝向?qū)У闹甘具M行安裝。
當(dāng) node.js 安裝完成后,您需要打開命令提示符(Windows 系統(tǒng)下,需要以管理員身份打開),輸入“npm install azure-cli –global”命令來安裝命令行工具。
Azure?訂閱
您需要具備有效的 Azure 訂閱。若沒有,請點擊此處獲取試用賬號。
獲取 Azure 訂閱之后,您需要使用命令行工具(“azure login”)來登錄此訂閱。本教程直接導(dǎo)入了訂閱證書,所以您在操作中無需登錄。
在命令提示符下運行“azure account download –e AzureChinaCloud”命令。這時您的瀏覽器中會彈出一個網(wǎng)頁,驗證您的賬號之后,就開始下載您的賬號證書。保存這個證書文件,然后運行“azure account import [path]”命令,將賬號詳細信息導(dǎo)入命令行工具。
如果您的 ID 關(guān)聯(lián)兩個或兩個以上的訂閱,請確保正在使用正確的訂閱。若想查看哪個訂閱是當(dāng)前有效的,請運行“azure account show”命令。
若想變更已選訂閱,使用“azure account list”命令列出所有有效訂閱,然后使用“azure account set [ACCOUNT]”命令設(shè)置一個有效訂閱。
在 Windows Azure 上創(chuàng)建 FreeBSD 虛擬機
完成初始設(shè)置之后,您就可以在 Azure 上創(chuàng)建 FreeBSD 虛擬機。本教程中,我們使用的是 FreeBSD 鏡像。實際上,VM Depot 上的任何鏡像都可以使用同樣的流程。
若想找到 VM Depot 上的 FreeBSD 鏡像,在?VM Depot 網(wǎng)站搜索“FreeBSD”即可。
點擊鏡像說明右方的“部署腳本”鏈接,同意相關(guān)條款并選擇部署區(qū)域之后,文本框中就會出現(xiàn)部署該鏡像所需使用的命令。
復(fù)制這個命令到您的外殼程序,并將“DNS-PREFIX”替換為能您機器的 ID 前綴,如“mydnsprefix.cloudapp.net”。記得要使用您自己的用戶名和密碼。您也可以在命令中包含“--ssh”選項,以確保啟動了 SSH 且端口 22 已打開。
有不少配置項可通過命令行進行設(shè)置。本教程中,我們將使用它們的默認(rèn)設(shè)置。更多信息,請參考命令行工具文檔。
示例中使用的命令是“azure vm create rgfreebsd3 -o vmdepot-36254-2-1 -l "West US" rgardler Pa$$Word123 –ssh”。您可以運行您自己的命令版本。
命令完成之后,虛擬機鏡像就創(chuàng)建完成了。但是還需要稍等幾分鐘,它才能完成啟動。您可以使用“azure vm list”命令來監(jiān)控狀態(tài)。當(dāng)您的虛擬機狀態(tài)變?yōu)椤癛eadyRole”時,就可以進行下一步操作了。
自定義您的 FreeBSD 虛擬機
現(xiàn)在,您有一臺空白的純 FreeBSD 虛擬機運行在 Microsoft Azure 上。您可以通過 SSH 連接到這臺機器,執(zhí)行您想做的操作。本教程中,我們將添加Jetty作為 Web 服務(wù)器和 javax.servlet 容器。
首先,您需要使用 SSH 登錄到服務(wù)器,這時會使用到您在創(chuàng)建虛擬機時定義的用戶名和密碼。本例中,我們使用“ssh rgfreebsd3.cloudapp.net -l rgardler”命令登錄。
若想使用 FreeBSD 包管理器安裝 Jetty,只需運行“sudo pkg install jetty”命令。為了確保 Jetty 伴隨虛擬機的開機而啟動,要在 /etc/rc.conf 文件中添加‘jetty_enable="YES"’,并使用“sudo cp /usr/local/jetty/etc/jetty.xml /usr/local/etc/jetty.xml”命令復(fù)制默認(rèn)的配置文件。
理想情況下,您應(yīng)該重啟虛擬機,測試是否設(shè)置成功。如果想節(jié)約時間,您也可以使用“sudo /usr/local/etc/rc.d/jetty start”命令手動啟動 Jetty,然后使用“exit”命令退出虛擬機。
您需要確保外部設(shè)備可以接入您的新服務(wù)器。HTTP 流量一般通過端口 80 進行傳輸。默認(rèn)情況下,它在您的虛擬機上處于關(guān)閉狀態(tài),您需要將它打開。打開端口的命令為“azure vm endpoint create rgfreebsd3 80 8080”(請確保您的機器名稱正確)。這樣就把公用端口 80 映射到了專用(虛擬機)端口 8080,后者是 Jetty 的默認(rèn)端口。
現(xiàn)在,您可以訪問創(chuàng)建虛擬機時定義的 URL(如?http://DNS_PREFIX.chinacloudapp.cn),以驗證瀏覽器工作正常。如果一切正常,將會彈出 Jetty 的標(biāo)準(zhǔn)主頁,如下圖所示:
與 VM Depot 社區(qū)分享 FreeBSD 鏡像
自定義 FreeBSD 鏡像之后,讓我們通過 VM Depot 與社區(qū)重新分享這個鏡像。您希望每個人都能從您的工作中受益,不是嗎?這時要注意,您在 VM Depot 上通過 Web 表單發(fā)布鏡像之前,還需要完成一些準(zhǔn)備步驟。
首先您需要取消虛擬機配置。這樣做會停止 Azure Agent,清除 SSH 密鑰和啟動密碼,并刪除網(wǎng)絡(luò)配置。為此,請再次通過 SSH 連接到虛擬機,運行“sudo waagent –deprovision”命令,然后使用“exit”命令退出虛擬機。
現(xiàn)在,使用命令行關(guān)閉虛擬機,并捕捉其鏡像。關(guān)閉虛擬機的命令為“azure vm shutdown rgfreebsd3”。
捕捉已關(guān)閉虛擬機的鏡像,我們可以使用“azure vm capture rgfreebsd3 freebsd_jetty --delete”命令。要注意,“freebsd_jetty”是您分配給鏡像的名稱,您可以隨意命名。這里的“--delete”是必選項,它會刪除當(dāng)前已停止的虛擬機。這是因為,目前尚不支持重新配置已捕捉鏡像的虛擬機。不過請放心,您可以根據(jù)捕捉的鏡像重新創(chuàng)建并配置虛擬機。
現(xiàn)在,您已獲得了一個可以創(chuàng)建新虛擬機的鏡像。我建議您在此階段不妨測試一下,以保證一切工作正常。當(dāng)然,您也可以直接跳轉(zhuǎn)到下面的發(fā)布階段。
下面我們根據(jù)捕捉的鏡像來創(chuàng)建一個新的虛擬機,使用的命令與我們之前根據(jù)社區(qū)鏡像創(chuàng)建虛擬機的命令類似。唯一的區(qū)別是,我們不需要使用“-o”開關(guān)來識別社區(qū)鏡像,而是使用附著在訂閱上的鏡像。這里使用的命令是“azure vm create rgfreebsd4 freebsd_jetty -l "West US" rgardler Pa$$Word345 --ssh”。一定要使用前面運行“capture”命令時定義的鏡像名稱,選擇您自己的 DNS 前綴來替換“rgfreebsd4”,提供您自己的用戶名和密碼。
和之前一樣,您需要打開一個合適的端點,以便在您的虛擬機上接入 Jetty。命令與之前在虛擬機上使用的命令一致(但要使用新的 DNS 前綴),如“azure vm endpoint create rgfreebsd4 80 8080”。完成這一步之后,您可以在瀏覽器中訪問新的虛擬機(http://dns_prefix.chinacloudapp.cn)。同樣,這時會彈出 Jetty 的默認(rèn)主頁,如下圖所示:
發(fā)布到 VM Depot
要將鏡像發(fā)布到 VM Depot,首先您要確保 VM Depot 應(yīng)用程序可以讀取該鏡像。為此,必須將存儲虛擬機鏡像的 blob 設(shè)置為可公開訪問。與求之前操作一致, 我們將使用命令行來完成。當(dāng)然,您也可以通過 Azure 管理門戶來實現(xiàn)這一要求。
操作之前,您必須知悉它存儲在哪里。使用“azure vm image show freebsd_jetty”命令來查看該鏡像的元數(shù)據(jù)。
?
為了實現(xiàn) blob 的公開訪問,您需要 blob 這個存儲容器的密鑰,可以使用“azure storage account keys list <storage-account-name>”命令獲取。存儲賬號的名稱可以從剛剛查看的元數(shù)據(jù)中獲得,它是“MediaLink”URL 的第一部分。在上面的示例中,存儲賬號為“ajamepiblobs”。這里會顯示主次兩個密鑰,使用其中任何一個都可以。
獲取密鑰之后,您可以運行“azure storage container set <container-name> -p Blob -a <storage-account-name> -k <key>”命令,設(shè)置對“公共 blob”的接入控制。Blob 這個容器的名稱也包含在“MediaLink”的 URL 中,它是路徑的第一部分。本例中,容器名稱為“vm-images”。存儲賬號的名稱與上一步中使用的相同,密鑰也是您剛剛獲取的那個。
現(xiàn)在 VM Depot 就能讀取虛擬機鏡像了,您可以輕松地將鏡像發(fā)布到 VM Depot。
登錄到?VM Depot,點擊“發(fā)布”按鈕。這時會彈出一個表單,如下圖所示:
這個表單應(yīng)當(dāng)簡單明了。有一項稍微復(fù)雜的是要求填寫 VHD 的 URL。它應(yīng)該是運行“azure vm image show freebsd_jetty”命令獲取的“MediaLink”URL。
鏡像在您選擇的所有區(qū)域內(nèi)進行復(fù)制,會花費幾分鐘的時間。相關(guān)的狀態(tài)更新,您可在提交以上表單后彈出的網(wǎng)頁上查看。有關(guān)提交流程的更多詳細信息,請查看?VM Depot 幫助文檔。復(fù)制完成之后,鏡像就會出現(xiàn)在 VM Depot 上。這時,您就可以向大家宣布新的虛擬機鏡像已正式發(fā)布了。
陳陽
技術(shù)推廣師
微軟開放技術(shù)(中國)
本文轉(zhuǎn)載自: http://blog.csdn.net/leonchenzhy/article/details/41892245?
轉(zhuǎn)載于:https://www.cnblogs.com/sesexxoo/p/6190927.html
總結(jié)
以上是生活随笔為你收集整理的在 Windows Azure 上部署并定制化 FreeBSD 虚拟机镜像的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate的fetch
- 下一篇: 现实世界的Windows Azure:采