FreeBSD 基礎鏡像現已登錄中國的 VM Depot! 對於青睞 BSD 而非 Linux 的開源愛好者來講,這無疑是個好消息。同時,隨着該基礎鏡像的可用,咱們期待很快看到更多來自社區的基於 FreeBSD 的開源鏡像,從而更加充實現有的可用 Linux 鏡像。html
本教程將幫助您使用 VM Depot 鏡像快速上手 Azure 平臺上的 FreeBSD,具體操做包括:java
- 使用基礎鏡像建立 FreeBSD 虛擬機
- 經過添加軟件包來自定義虛擬機
- 將自定義鏡像從新發布到 VM Depot
設置要求node
- Node.js
- Microsoft Azure 訂閱
更多詳細信息,請閱讀如下說明。若您已知足以上要求,請直接跳轉至「在 Windows Azure 上建立 FreeBSD 虛擬機」部分。npm
Node.js 跨平臺命令行工具windows
儘管大部分工做能夠在 Azure 管理門戶上進行,本例中咱們仍是使用跨平臺的 node.js 命令行工具。本教程只涉及不多一部分命令行工具。更多信息,請查看跨平臺 Azure 命令行工具使用文檔。瀏覽器
若是您使用的是 Mac 或 Windows 系統,您可使用下面提到的 Node 包管理器(NPM),或者選擇您使用平臺(Windows或Mac)自身的安裝程序,而後直接跳轉至下一節內容。若您傾向於使用 NPM,請繼續閱讀本節內容。服務器
登陸站點 node.js,點擊「安裝」按鈕,依照安裝嚮導的指示進行安裝。網絡
當 node.js 安裝完成後,您須要打開命令提示符(Windows 系統下,須要以管理員身份打開),輸入「npm install azure-cli –global」命令來安裝命令行工具。app
Azure 訂閱eclipse
您須要具有有效的 Azure 訂閱。若沒有,請點擊此處獲取試用帳號。
獲取 Azure 訂閱以後,您須要使用命令行工具(「azure login」)來登陸此訂閱。本教程直接導入了訂閱證書,因此您在操做中無需登陸。
在命令提示符下運行「azure account download –e AzureChinaCloud」命令。這時您的瀏覽器中會彈出一個網頁,驗證您的帳號以後,就開始下載您的帳號證書。保存這個證書文件,而後運行「azure account import [path]」命令,將帳號詳細信息導入命令行工具。
若是您的 ID 關聯兩個或兩個以上的訂閱,請確保正在使用正確的訂閱。若想查看哪一個訂閱是當前有效的,請運行「azure account show」命令。
若想變動已選訂閱,使用「azure account list」命令列出全部有效訂閱,而後使用「azure account set [ACCOUNT]」命令設置一個有效訂閱。
在 Windows Azure 上建立 FreeBSD 虛擬機
完成初始設置以後,您就能夠在 Azure 上建立 FreeBSD 虛擬機。本教程中,咱們使用的是 FreeBSD 鏡像。實際上,VM Depot 上的任何鏡像均可以使用一樣的流程。
若想找到 VM Depot 上的 FreeBSD 鏡像,在 VM Depot 網站搜索「FreeBSD」便可。
點擊鏡像說明右方的「部署腳本」連接,贊成相關條款並選擇部署區域以後,文本框中就會出現部署該鏡像所需使用的命令。
複製這個命令到您的外殼程序,並將「DNS-PREFIX」替換爲能您機器的 ID 前綴,如「mydnsprefix.cloudapp.net」。記得要使用您本身的用戶名和密碼。您也能夠在命令中包含「--ssh」選項,以確保啓動了 SSH 且端口 22 已打開。
有很多配置項可經過命令行進行設置。本教程中,咱們將使用它們的默認設置。更多信息,請參考命令行工具文檔。
示例中使用的命令是「azure vm create rgfreebsd3 -o vmdepot-36254-2-1 -l "West US" rgardler Pa$$Word123 –ssh」。您能夠運行您本身的命令版本。
命令完成以後,虛擬機鏡像就建立完成了。可是還須要稍等幾分鐘,它才能完成啓動。您可使用「azure vm list」命令來監控狀態。當您的虛擬機狀態變爲「ReadyRole」時,就能夠進行下一步操做了。
自定義您的 FreeBSD 虛擬機
如今,您有一臺空白的純 FreeBSD 虛擬機運行在 Microsoft Azure 上。您能夠經過 SSH 鏈接到這臺機器,執行您想作的操做。本教程中,咱們將添加Jetty做爲 Web 服務器和 javax.servlet 容器。
首先,您須要使用 SSH 登陸到服務器,這時會使用到您在建立虛擬機時定義的用戶名和密碼。本例中,咱們使用「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」命令複製默認的配置文件。
理想狀況下,您應該重啓虛擬機,測試是否設置成功。若是想節約時間,您也可使用「sudo /usr/local/etc/rc.d/jetty start」命令手動啓動 Jetty,而後使用「exit」命令退出虛擬機。
您須要確保外部設備能夠接入您的新服務器。HTTP 流量通常經過端口 80 進行傳輸。默認狀況下,它在您的虛擬機上處於關閉狀態,您須要將它打開。打開端口的命令爲「azure vm endpoint create rgfreebsd3 80 8080」(請確保您的機器名稱正確)。這樣就把公用端口 80 映射到了專用(虛擬機)端口 8080,後者是 Jetty 的默認端口。
如今,您能夠訪問建立虛擬機時定義的 URL(如 http://DNS_PREFIX.chinacloudapp.cn),以驗證瀏覽器工做正常。若是一切正常,將會彈出 Jetty 的標準主頁,以下圖所示:
與 VM Depot 社區分享 FreeBSD 鏡像
自定義 FreeBSD 鏡像以後,讓咱們經過 VM Depot 與社區從新分享這個鏡像。您但願每一個人都能從您的工做中受益,不是嗎?這時要注意,您在 VM Depot 上經過 Web 表單發佈鏡像以前,還須要完成一些準備步驟。
首先您須要取消虛擬機配置。這樣作會中止 Azure Agent,清除 SSH 密鑰和啓動密碼,並刪除網絡配置。爲此,請再次經過 SSH 鏈接到虛擬機,運行「sudo waagent –deprovision」命令,而後使用「exit」命令退出虛擬機。
如今,使用命令行關閉虛擬機,並捕捉其鏡像。關閉虛擬機的命令爲「azure vm shutdown rgfreebsd3」。
捕捉已關閉虛擬機的鏡像,咱們可使用「azure vm capture rgfreebsd3 freebsd_jetty --delete」命令。要注意,「freebsd_jetty」是您分配給鏡像的名稱,您能夠隨意命名。這裏的「--delete」是必選項,它會刪除當前已中止的虛擬機。這是由於,目前尚不支持從新配置已捕捉鏡像的虛擬機。不過請放心,您能夠根據捕捉的鏡像從新建立並配置虛擬機。
如今,您已得到了一個能夠建立新虛擬機的鏡像。我建議您在此階段不妨測試一下,以保證一切工做正常。固然,您也能夠直接跳轉到下面的發佈階段。
下面咱們根據捕捉的鏡像來建立一個新的虛擬機,使用的命令與咱們以前根據社區鏡像建立虛擬機的命令相似。惟一的區別是,咱們不須要使用「-o」開關來識別社區鏡像,而是使用附着在訂閱上的鏡像。這裏使用的命令是「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 的默認主頁,以下圖所示:
發佈到 VM Depot
要將鏡像發佈到 VM Depot,首先您要確保 VM Depot 應用程序能夠讀取該鏡像。爲此,必須將存儲虛擬機鏡像的 blob 設置爲可公開訪問。與求以前操做一致, 咱們將使用命令行來完成。固然,您也能夠經過 Azure 管理門戶來實現這一要求。
操做以前,您必須知悉它存儲在哪裏。使用「azure vm image show freebsd_jetty」命令來查看該鏡像的元數據。
爲了實現 blob 的公開訪問,您須要 blob 這個存儲容器的密鑰,可使用「azure storage account keys list <storage-account-name>」命令獲取。存儲帳號的名稱能夠從剛剛查看的元數據中得到,它是「MediaLink」URL 的第一部分。在上面的示例中,存儲帳號爲「ajamepiblobs」。這裏會顯示主次兩個密鑰,使用其中任何一個均可以。
獲取密鑰以後,您能夠運行「azure storage container set <container-name> -p Blob -a <storage-account-name> -k <key>」命令,設置對「公共 blob」的接入控制。Blob 這個容器的名稱也包含在「MediaLink」的 URL 中,它是路徑的第一部分。本例中,容器名稱爲「vm-images」。存儲帳號的名稱與上一步中使用的相同,密鑰也是您剛剛獲取的那個。
如今 VM Depot 就能讀取虛擬機鏡像了,您能夠輕鬆地將鏡像發佈到 VM Depot。
登陸到 VM Depot,點擊「發佈」按鈕。這時會彈出一個表單,以下圖所示:
這個表單應當簡單明瞭。有一項稍微複雜的是要求填寫 VHD 的 URL。它應該是運行「azure vm image show freebsd_jetty」命令獲取的「MediaLink」URL。
鏡像在您選擇的全部區域內進行復制,會花費幾分鐘的時間。相關的狀態更新,您可在提交以上表單後彈出的網頁上查看。有關提交流程的更多詳細信息,請查看 VM Depot 幫助文檔。複製完成以後,鏡像就會出如今 VM Depot 上。這時,您就能夠向你們宣佈新的虛擬機鏡像已正式發佈了。
陳陽
技術推廣師
微軟開放技術(中國)
本文轉載自: http://blog.csdn.net/leonchenzhy/article/details/41892245