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