昨天教了大家如何使用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"
至此,装逼工作全部完成!