幾個星期前,我發表了一篇關於Windows Azure 雲服務的博客。 我正在挖掘新的東西,並且在Mac,PC和Linux(我更喜歡Ubuntu)上做著不同的嘗試。 作為很長一段時間的PowerShell和命令列的粉絲,我一直在尋找在「文字模式」中處理事務的方法,以及腳本網站的創建和部署。
原來有一大堆用命令列訪問Azure的方法-比我想像的還多。 有一個基於JSON的Web API,這會讓那些工具終止對話。 如果你想的話,你當然可以直接調用那些API,但是命令列工具確實非常有趣。
Windows PowerShell Cmdlets Mac 命令列工具 Linux 命令列工具
你可以在Mac上安裝Mac Azure SDK 安裝程式來獲得這些工具以及更多,或者,如果你在Windows或Mac或Linux上安裝node.js,你可以用Node Page Manager(npm)來像這樣安裝Azure:
npm install azure --global
你也可以用apt-get或者其他存儲命令。 在這之後,你可以運行「azure」,這能以非常直觀的方式為你提供連結在一起的命令。 「azure topic(名詞)動詞選項」或者「azure 網站清單」或者「azure 虛擬硬碟創建」,如下:
甚至有ASCII碼 的藝術,誰能不喜歡它呢。
認真的說,雖然它是很老套的。 這裡有一個我剛剛做的交互的例子。 我削減了一些無聊的東西,但是這是始于一個全新的沒有安裝工具的機器,並用我的Windows Azure 帳戶結束交互的。
scott@hanselmac:~$ npm install azure
npm HTTP GET HTTPs://registry.npmjs.org/azure
...bunch of GETS...
scott@hanselmac:~$ azure
info: _ _____ _ ___ ___
info: /_\ |_ / | | | _ \ __|
info: _ ___/ _ \__/ /| |_| | / _|___ _ _
info: (___ /_/ \_\/___|\___/|_|_\___| _____)
info: (_______ _ _) _ ______ _)_ _
info: (______________ _ ) (___ _ _)
info:
info: Windows Azure: Microsoft's Cloud Platform
info:
info: Tool version 0.6.0
...bunch of help stuff...
scott@hanselmac:~$ azure account download
info: Executing command account download
info: Launching browser to HTTP://go.microsoft.com/fwlink/?LinkId=254432
help: Save the downloaded file, then execute the command
help: account import <file>
info: account download command OK
scott@hanselmac:~$ cd ~
scott@hanselmac:~$ cd Downloads/
scott@hanselmac:~/Downloads$ ls
3-Month Free Trial.publishsettings
scott@hanselmac:~/Downloads$ azure account import 3-Month\ Free\ Trial.publishsettings
info: Executing command account import
info: Setting service endpoint to: management.core.windows.net
info: Setting service port to: 443
info: Found subscription: 3-Month Free Trial
info: Setting default subscription to: 3-Month Free Trial
warn: Remember to delete it now that it has been imported.
info: Account publish settings imported successfully
info: account import command OK
scott@hanselmac:~/Downloads$ azure site list
info: Executing command site list
+ Enumerating locations
+ Enumerating sites
data: Name State Host names
data: ----------------- ------- -------------------------------------------------------------
data: superawesome Running superawesome.azurewebsites.net,www.acustomdomain.com
info: site list command OK
scott@hanselmac:~/Downloads$ azure site list --json
[
{
"AdminEnabled": "true",
"AvailabilityState": "Normal",
"EnabledHostNames": [
"superawesome.azurewebsites.net",
"www.acustomdomain.com"
],
"HostNames": [
"ratchetandthegeek.azurewebsites.net",
"www.ratchetandthegeek.com"
"State": "Running",
"UsageState": "Normal",
"WebSpace": "eastuswebspace"
}
]
這兒是我如何用命令列創建並啟動一台虛擬機器的。 首先我會列出可用的鏡像,我可以用那些鏡像來開始,然後我就來創建它。 我等待它準備就緒,然後就開始和準備遠端連線(RDP,SSH,等等)。
scott@hanselmac:~$ azure vm image list
info: Executing command vm image list
+ Fetching VM images
data: Name Category OS
data: -------------------------------------------------------------------------- --------- -------
data: CANONICAL__Canonical-Ubuntu-12-04-amd64-server-20120528.1.3-en-us-30GB.vhd Canonical Linux
data: MSFT__Windows-Server-2012-RC-June2012-en-us-30GB.vhd Microsoft Windows
data: MSFT__Sql-Server-11EVAL-11.0.2215.0-05152012-en-us-30GB.vhd Microsoft Windows
data: MSFT__Win2K8R2SP1-120514-1520-141205-01-en-us-30GB.vhd Microsoft Windows
data: OpenLogic__OpenLogic-CentOS-62-20120531-en-us-30GB.vhd OpenLogic Linux
data: SUSE__openSUSE-12-1-20120603-en-us-30GB.vhd SUSE Linux
data: SUSE__SUSE-Linux-Enterprise-Server-11SP2-20120601-en-us-30GB.vhd SUSE Linux
info: vm image list command OK
scott@hanselmac:~$ azure vm create hanselvm MSFT__Windows-Server-2012-RC-June2012-en-us-30GB.vhd scott superpassword - -location "West US"
info: Executing command vm create
+ Looking up image
+ Looking up cloud service
+ Creating cloud service
+ Retrieving storage accounts
+ Creating VM
info: vm create command OK
scott@hanselmac:~$ azure vm list
info: Executing command vm list
+ Fetching VMs
data: DNS Name VM Name Status
data: --------------------- -------- ------------
data: hanselvm.cloudapp.net hanselvm Provisioning
info: vm list command OK
這是給Mac,Linux和可選的Windows的命令列工具。 (如果你安裝node,並運行「npm install azure--global」)並且,還有Windows管理員使用的PowerShell命令。 值得注意的是, 您可以簽出所有代碼,因為它們在github上的HTTP://github.com/windowsazure 都是開源的。 事實上,整個命令列應用程式是用JavaScript編寫的。
正如管理工具的命令列版本有一個非常具體的和舒服的名詞/動詞/選項的風格, comdlets也非常有「PowerShelly」風格,並且會讓使用PowerShell的人感到非常舒服。 文檔和工具是在預覽的模式下,並且正在開發中,所以你在文檔中會發現一些漏洞。
這些PowerShell命令可以一起工作,並且資料在它們之間傳輸。 在這裡創建了一個新的Azure 虛擬機器配置,而它的機器名是從清單中選出的,然後config物件被傳遞到New-AzureVM中。
1: C:\PS>New-AzureVMConfig -Name "MySUSEVM2" -InstanceSize ExtraSmall -ImageName (Get-AzureVMImage)[7]. ImageName `
2: | Add-AzureProvisioningConfig –Linux –LinuxUser $lxUser -Password $adminPassword `
3: | New-AzureVM
接下來,我想找出如何用命令列啟動一整個場網站,如何將一個應用程式部署到新的網路場,以及為場配置流量,然後頻繁地載入測試,這些都使用命令列獲得。 這將會多麼有趣!
贊助者:我要感謝這周在DevExpress贊助源的同事們。 看看他們的DXperience工具,實在是太棒了。 你能用ASP.NET和Web Forms創建一個基於web的iPad應用程式。 我個人印象非常深刻。 DevExpress 引入的DXperience 12.1-技術環境正在發生改變,並且新的平臺正在興起。 新的DevExpress 工具在桌面上,在Web上或者跨越各種各樣的觸摸行動裝置中提供下一代使用者體驗。