昨天教了大家如何使用Windows Azure PowerShell启动和关闭虚拟机,但光会用PS开关机还是不够的。如果你还在用网页版Portal创建和删除虚拟机,而只用PS去开关机,逼格明显就不完整了。所以今天再教大家如何用Windows Azure PowerShell创建和删除虚拟机,完成整个装逼过程。

首先,使用Windows Azure PowerShell登录Azure账户的步骤不再重复了,上一篇文章里有。假定你已经登录了。

如果你想查看虚拟机列表命令是:

Get-AzureVM

1. 要创建虚拟机需要获得一些前置信息。第一个是你的订阅名称。运行这条命令获得:

Get-AzureSubscription

在我的例子中,结果是Windows Azure MSDN - Visual Studio Ultimate。这是一个一年价值12w的订阅,大家不要在意这些细节。稍后我们会用到。

2. 我们还需要获得存储账户的名称(假定你已经拥有一个了,本文不教大家如何用PS创建存储账户)

Get-AzureStorageAccount

这里我选用East Asia区域的diaostorage账户。稍后虚拟机就会创建在这个存储账户里。

3. 设定你当前环境使用前两部获得的订阅名称和存储账户名称:

Set-AzureSubscription "Windows Azure MSDN - Visual Studio Ultimate" -CurrentStorageAccount diaostorage

这一步运行之后不会有任何输出。但请放心,这样就已经设置好了。

4. 获取虚拟机镜像名称。

Get-AzureVMImage

这里的镜像指的就是你在Azure Portal里Create VM from gallery里的那些镜像。

运行之后会出来一大坨镜像的详细信息,我们选用这个Windows 7的镜像。记住他的名字:

03f55de797f546a1b29d1b8d66be687a__Windows-7-Enterprise-x64-en.us-201405.01

5. 使用New-AzureQuickVM命令创建虚拟机。

创建Windows虚拟机的命令完整描述是这样的

New-AzureQuickVM 
-ImageName <string> 
-ServiceName <string> 
-Windows 
[-AdminUsername <string>] 
[-AffinityGroup <string>] 
[-AvailabilitySetName <string>] 
[-Certificates <CertificateSettingList>] 
[-DisableGuestAgent]
[-DisableWinRMHttps] 
[-DnsSettings <DnsServer[]>] 
[-EnableWinRMHttp] 
[-HostCaching <string>] 
[-InstanceSize <string>] 
[-Location <string>] 
[-MediaLocation <string>] 
[-Name <string>] 
[-NoExportPrivateKey] 
[-NoWinRMEndpoint]
[-Password <string>] 
[-ReservedIPName <string>] 
[-SubnetNames <string[]>] 
[-VNetName <string>] 
[-WaitForBoot]
[-WinRMCertificate <X509Certificate2>] 
[-X509Certificates <X509Certificate2[]>] 
[<CommonParameters>]

解释几个关键的:

ServiceName:云服务名称

Name:虚拟机名称

ImageName:镜像名称

AdminUsername:管理员账户名称

Password:管理员账户密码

Location:数据中心的位置

于是创建Windows 7虚拟机的命令如下:

New-AzureQuickVM -Windows -ServiceName "AzurePSDemoWin7" -Name "HelloWin7" -ImageName "03f55de797f546a1b29d1b8d66be687a__Windows-7-Enterprise-x64-en.us-201405.01" -AdminUsername "Edi" -Password "Edi@AzurePSDemo" -Location "East Asia"

创建完成之后,你在PS的命令窗口和Azure的网页portal里都能看见你的VM了。

云服务也一样可以看见:

并且它肯定是可以用的:

至此VM创建工作全部完成。

6. 删除虚拟机

这一步不要求先关机,完全可以在运行时删除,Azure会自动帮你关机的。

Remove-AzureVM -Name "HelloWin7" -ServiceName "AzurePSDemoWin7"

7. 删除云服务

Remove-AzureService -ServiceName "AzurePSDemoWin7"

这一步是需要按Y确认的(为毛删VM的时候不确认,草草草草....

8. 为了删除磁盘,我们首先要获取磁盘名称列表

Get-AzureDisk

找到我们的磁盘名称:AzurePSDemoWin7-HelloWin7-0-201406140257450658

9. 删除磁盘

Remove-AzureDisk -DiskName "AzurePSDemoWin7-HelloWin7-0-201406140257450658"

10. 为了删除存储账户中的VHD和status文件,首先要获取vhds这个container下的文件名称列表

Get-AzureStorageBlob -Container vhds | Select name

我们的虚拟机明显使用的是这2个:

AzurePSDemoWin7-HelloWin7-2014-6-14-10-57-29-896-0.vhd
AzurePSDemoWin7.AzurePSDemoWin7.HelloWin7.status

11. 分别删除vhd和status文件

Remove-AzureStorageBlob -Blob "AzurePSDemoWin7-HelloWin7-2014-6-14-10-57-29-896-0.vhd"
Remove-AzureStorageBlob -Blob "AzurePSDemoWin7.AzurePSDemoWin7.HelloWin7.status"

至此,装逼工作全部完成!