PowerShell 使用 Azure

Azure 提供了三种管理工具:

  • Azure 门户:Azure 门户是一个网站,可在其中创建、配置和更改 Azure 订阅中的资源,该门户是一个图形用户界面 (GUI)
  • Azure CLI:是一个跨平台的命令行程序 (CLI),可连接到 Azure 并对 Azure 资源执行管理命令
  • Azure PowerShell:是可添加到 PowerShell 的模块,可用于连接 Azure 订阅和管理资源

Azure Az PowerShell 模块必须安装此额外模块才能将特定于 Azure 的命令添加到 PowerShell

在 Azure PowerShell 中使用脚本创建 Azure 资源

我们经常用的两个命令

  • Get-Help: 获取帮助
  • Get-Module: 获取已加载的模块列表

“Az”是 Azure PowerShell 模块的正式名称,其中包含用于处理 Azure 功能的 cmdlet

  • 可用于资源组、存储、虚拟机、Azure Active Directory、容器、机器学习等

  • 安装 Az PowerShell 模块:

    # 系统询问你是否信任来自 PSGallery 的模块,请回答 Yes
    Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force
    
    # 如果已经安装,需要更新使用
    Update-Module -Name Az
    

使用 Azure PowerShell 创建资源组

  • 导入 Azure cmdlet

    从 PowerShell 3.0 开始,在模块中使用 cmdlet 时会自动加载模块

  • 连接到 Azure 订阅

    Connect-AzAccount 命令 cmdlet 会提示输入 Azure 凭据,然后连接到 Azure 订阅

  • 使用订阅

    • 使用 Get-AzContext 命令确定哪个订阅处于活动状态
    • 使用 Get-AzSubscription 命令获取帐户中所有订阅名称的列表
    • 使用 Set-AzContext -Subscription <String> 通过传递要选择的订阅名称来更改订阅
  • 资源组

    • 使用 Get-AzResourceGroup 可检索包含有效订阅中所有资源组的列表
    • 使用 New-AzResourceGroup -Name <name> -Location <location> 创建资源组
  • 验证资源

    • Get-AzResource 会列出你的 Azure 资源,这对于验证是否创建了资源以及资源组的创建是否成功非常有用

创建一个 Azure 虚拟机

Azure PowerShell 提供 New-AzVm 命令用于创建虚拟机

New-AzVm
    -ResourceGroupName <resource group name>        # 用来放置新 VM 的资源组
    -Name <machine name>                            # Azure 中 VM 的名称
    -Credential <credentials object>                # 预配 VM 的地理位置
    -Location <location>                            # 包含 VM 管理员帐户的用户名和密码的对象
    -Image <image name>                             # 用于 VM 的操作系统映像,通常是 Linux 发行版或 Windows Server

AzVM 后缀特定于 PowerShell 中基于 VM 的命令,不同前缀:

  • New: 创建 VM
  • Remove: 删除 VM
  • Start: 启动已停止的 VM
  • Stop: 停止正在运行的 VM
  • Restart: 重启 VM
  • Update: 更新 VM 的配置

获取 VM 的信息

$Name = "MyVM"
$ResourceGroupName = "ExerciseResources"

# 可使用 Get-AzVM -Status 命令列出订阅中的 VM
$vm = Get-AzVM  -Name $Name -ResourceGroupName $ResourceGroupName

# 现在 VM 是一个可与之交互的对象,可以对该对象进行更改,然后使用 Update-AzVM 命令将更改推送回 Azure
$vm.HardwareProfile.vmSize = "Standard_DS3_v2"
Update-AzVM -ResourceGroupName $ResourceGroupName  -VM $vm

Remove-AzResourceGroup -Name <MyResourceGroupName> 可以删除整个资源组



/// 提示:多用 Get-Help