练习 - 在 Azure PowerShell 中创建并保存脚本

已完成

在本单元中,你将继续使用开发 Linux 管理员工具的公司示例。 回忆一下,你的计划是使用 Linux VM 让潜在客户测试你的软件。 你已准备好一个资源组,现在是时候创建 VM 了。

你的公司付费在大型 Linux 贸易展租了一个展位。 你计划在演示区配设三台终端机,每台与单独的 Linux VM 进行连接。 在每天结束时,你希望删除 VM,再创新创建它们,使其每天早上焕然一新。 但在下班后感到疲倦时手动创建 VM 容易出错。 你想要编写一个 PowerShell 脚本来自动执行 VM 创建流程。

编写用于创建虚拟机的脚本

请按照 Cloud Shell 右侧的步骤编写脚本:

  1. 切换到 Cloud Shell 中的主文件夹。

    cd $HOME\clouddrive
    
  2. 新建一个名为 ConferenceDailyReset.ps1 的文本文件。

    touch "./ConferenceDailyReset.ps1"
    
  3. 打开集成编辑器,然后选择 ConferenceDailyReset.ps1 文件。

    code "./ConferenceDailyReset.ps1"
    

    提示

    如果你想使用 vim、nano 和 emacs 中的一种,集成的 Cloud Shell 还可支持这些编辑器。

  4. 首先捕获变量中的输入参数。 将以下代码行添加到脚本。

    param([string]$resourceGroup)
    

    注意

    通常,必须使用 Connect-AzAccount 利用凭证对 Azure 进行身份验证,该操作可以在脚本中完成。 然而,你已在 Cloud Shell 环境中进行过身份验证,因此无需进行该操作。

  5. 系统提示输入 VM 管理员帐户的用户名和密码,请捕获变量中的结果:

    $adminCredential = Get-Credential -Message "Enter a username and password for the VM administrator."
    
  6. 创建一个执行三次的循环:

    For ($i = 1; $i -le 3; $i++) 
    {
    
    }
    
  7. 在循环正文中,为每个 VM 创建一个名称并存储在变量中,然后将其输出到控制台:

    $vmName = "ConferenceDemo" + $i
    Write-Host "Creating VM: " $vmName
    
  8. 接下来,使用 $vmName 变量创建 VM:

    New-AzVm -ResourceGroupName $resourceGroup -Name $vmName -Credential $adminCredential -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest
    
  9. 保存文件。 你可以使用编辑器右上角的“...”菜单。 还有用于“保存”的常用快捷键,例如 Ctrl + S

完成后的脚本应如以下代码所示:

param([string]$resourceGroup)

$adminCredential = Get-Credential -Message "Enter a username and password for the VM administrator."

For ($i = 1; $i -le 3; $i++)
{
    $vmName = "ConferenceDemo" + $i
    Write-Host "Creating VM: " $vmName
    New-AzVm -ResourceGroupName $resourceGroup -Name $vmName -Credential $adminCredential -Image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest
}

运行脚本

  1. 保存文件,然后使用编辑器右上角的“…”上下文菜单关闭编辑器(或者使用 Ctrl + Q 进行此操作)。

  2. 运行该脚本。

    ./ConferenceDailyReset.ps1 <rgn>[sandbox resource group name]</rgn>
    

    此脚本需要几分钟完成。 完成后,通过查看资源组中现有的资源来验证它是否成功运行:

    Get-AzResource -ResourceType Microsoft.Compute/virtualMachines
    

你应该会看到三个 VM,每个 VM 都有唯一的名称。

你编写了一个脚本,它在脚本参数指示的资源组中自动创建三个 VM。 该脚本简短且简单,但它能自动执行流程。没有它,你需要在 Azure 门户上耗费大量时间手动完成操作。