前面讲到了很多的管理方式,包括Azure中国最近更新的预览版管理门户和Azure云助理,都是非常不错的管理Azure的方式,今天我们再来介绍一种更加高效的管理方式Azure PowerShell。熟悉命令行的朋友都知道,Linux之所以那么好用是因为其强大的命令行工具,可以简单直接的管理我们的服务器、应用等。然而在很早之前微软也推出了自己的命令行渠道,没错就是我们大名鼎鼎的PowerShell。
为什么说PowerShell那么强大呢?因为从Windows 8之后的产品、2007之后的服务端系统(诸如Exchange、Lync、SharePoint、SQL、AD等等),我们可以随时随地都见到PowerShell的身影,没错,PowerShell是万能的,能操作UI实现的PowerShell能做到,不能操作UI实现的PowerShell也能做到!就是这么强大,然而今天我们要分享的是如何使用Azure PowerShell高效的管理我们的公有云服务。
首先我们需要安装最新的PowerShell命令行工具模块,最新版Azure PowerShell 下载地址:
https://github.com/Azure/azure-powershell/releases
或者通过安装Web Platform Installer 5.0,通过UI界面下载Azure PowerShell的最新版。
https://www.microsoft.com/web/downloads/platform.aspx
其实也是非常方便的,除了下载Azure PowerShell,我们还可以使用Web Platform 5.0作更多的事情,这里就不再扩展了,扯得太远了。
找到我们Azure PowerShell,选择添加,然后单击下方的安装会出现安装项目确认,我们确认无误单击我同意即可开始安装。
完成之后,我们就可以通过开始输入powershell,打开我们的PowerShell了(记得右键选择管理员身份运行)。
打开的时候会发现和我们之前的PowerShell没有任何的区别,因为我们安装的仅仅是Azure的PowerShell扩展模块而已。
接下来,我们需要登录到我们的云帐号中,需要使用你的订阅来管理你的服务。如果你没有 Azure 订阅,可以购买一个。输入以下命令进行登录:
Login-AzureRmAccount -EnvironmentName AzureChinaCloud
Azure 将对凭据信息进行身份验证和保存,然后关闭该窗口。也可以通过PowerShell的cmdlet直接登录,输入以下命令:
$cred=Get-Credential
Login-AzureRmAccount-EnvironmentNameAzureChinaCloud-Credential$cred
登陆成功的话,会显示帐户信息、租户ID订阅ID以及订阅名称等信息。需要注意的是:
1、登录的话有两种方式,经典模式(AzureAccount)和资源组模式(AzureRmAccount)。具体来讲经典模式和资源组模式有以下区别:
- Azure:包括用于管理单个资源(如存储帐户、网站、数据库、虚拟机和媒体服务)的传统 cmdlet。
- AzureResourceManager:包含用于将复杂服务的 Azure 资源作为一个逻辑单元创建、管理和部署的 cmdlet。使用此模块可创建支持 Web 门户、照片库、博客、wiki 和更多内容的资源组。
2、这是一次性的登录,就如同我们通过浏览器访问Azure管理门户一样,会话有一定时间的有效期。
如果我们想长时间的启动PowerShell就能运行Azure PowerShell管理cmdlet,那么我们可以通过下面一种方式。执行 Azure PowerShell 命令:
Get-AzurePublishSettingsFile -Environment AzureChinaCloud
之后在浏览器页面中输入您的用户名和密码,登录我们要管理的Azure订阅帐号:
之后会生成订阅设置文件,我们需要将其下载保存,以便进行下一步的导入操作。
确认好我们Azure订阅文件的位置和名称(最好不要带有中文)。
需要注意的是导入的方式并不会因为我们关闭PowerShell或是重启计算机而丢失管理权限,所以务必在安全可靠的计算机中使用导入方式进行Azure PowerShell管理。
然后我们就可以通过PowerShell将其导入了,输入以下命令进行订阅文件导入:
Import-AzurePublishSettingsFile X:\xxxxxxxx.publishsettings
导入完成没有问题的话,会显示当前的订阅ID、订阅名称等相关信息。
这个时候我们就可以使用Azure PowerShell cmdlet了,比如Get-AzureVM<span style="font-family