快速入门:使用 PowerShell 在 Azure 中创建 Linux 虚拟机

适用于:✔️ Linux VM

Azure PowerShell 模块用于从 PowerShell 命令行或脚本创建和管理 Azure 资源。 本快速入门展示了如何使用 Azure PowerShell 模块在 Azure 中部署 Linux 虚拟机 (VM)。 本快速入门使用最新的 Debian 市场映像。 若要查看运行中的 VM,也可以通过 SSH 登录到该 VM 并安装 NGINX Web 服务器。

如果没有 Azure 订阅,可在开始前创建一个试用帐户

启动 Azure 本地 Shell

若要在本地安装和使用 PowerShell,请运行 Get-Module -ListAvailable Az.* 以查找版本。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount -Environment AzureChinaCloud 来创建与 Azure 的连接。

创建资源组

使用 New-AzResourceGroup 创建 Azure 资源组。 资源组是在其中部署和管理 Azure 资源的逻辑容器:

New-AzResourceGroup -Name 'myResourceGroup' -Location 'ChinaNorth2'

创建虚拟机

我们将自动生成 SSH 密钥对,用于连接到 VM。 使用 -GenerateSshKey 创建的公钥将作为资源存储到 Azure,且以输入的名称作为 SshKeyName。 可以重复使用 SSH 密钥资源创建更多虚拟机。 此外,将自动下载公钥和私钥。

系统将提示你输入连接到 VM 时将使用的用户名。 还将要求输入密码,但你可以将其留空。 使用 SSH 密钥时,将禁用 VM 的密码登录。

在本示例中,你将创建名为 myVM 的 VM,设置为中国北部并使用 Standard_B2s VM 大小 。

New-AzVm `
    -ResourceGroupName 'myResourceGroup' `
    -Name 'myVM' `
    -Location 'China North 2' `
    -image Debian `
    -size Standard_B2s `
    -PublicIpAddressName myPubIP `
    -OpenPorts 80 `
    -GenerateSshKey `
    -SshKeyName mySSHKey

输出将给出 SSH 密钥的本地副本的位置。 例如:

Private key is saved to /home/user/.ssh/1234567891
Public key is saved to /home/user/.ssh/1234567891.pub

PowerShell 的虚拟机创建过程中不会显示成本信息,就像 Azure 门户一样。 若要详细了解虚拟机的成本原理,请参阅成本优化概述页

部署 VM 需要数分钟。 部署完成后,请转到下一部分。

安装 NGINX

若要查看运行中的 VM,请安装 NGINX Web 服务器。

Invoke-AzVMRunCommand `
   -ResourceGroupName 'myResourceGroup' `
   -Name 'myVM' `
   -CommandId 'RunShellScript' `
   -ScriptString 'sudo apt-get update && sudo apt-get install -y nginx'

-ScriptString参数需要模块的版本4.27.0Az.Compute或更高版本。

查看运行中的 Web 服务器

获取 VM 的公共 IP 地址:

Get-AzPublicIpAddress -Name myPubIP -ResourceGroupName myResourceGroup | select "IpAddress" 

使用所选的 Web 浏览器查看默认的 NGINX 欢迎页。 输入 VM 的公共 IP 地址作为 Web 地址。

Screenshot showing the N G I N X default web page.

清理资源

不再需要时,可以使用 Remove-AzResourceGroup cmdlet 删除资源组、VM 和所有相关资源:

Remove-AzResourceGroup -Name 'myResourceGroup'

后续步骤

在本快速入门中,你部署了一台简单的虚拟机、一条网络安全组规则组和规则,并安装了一台基本 Web 服务器。 若要详细了解 Azure 虚拟机,请继续学习 Linux VM 的教程。