练习 - 创建虚拟机
让我们从最明显的任务开始:创建 Azure 虚拟机。
注意
本练习可选做。 若要完成本练习,则需要在开始之前创建 Azure 订阅。 如果没有 Azure 帐户或不想暂时创建一个帐户,可以通读说明,以便了解所显示的信息。
注意
需要使用资源组来完成本练习中的步骤。 可以使用已创建的资源组,也可以专门为此练习创建新的资源组。 如果选择创建新的资源组,这样就可以更轻松地清理完成练习时创建的任何资源。 如果没有现有资源组或想要为此练习创建新的资源组,可以按照 使用 Azure 门户和 Azure 资源管理器 中的步骤管理资源组,使用 Azure 门户创建资源组,或者可以使用 Azure CLI 通过 Azure CLI 创建资源组,按照 “管理 Azure 资源组 ”中的步骤作。
注意
在本单元中,你将使用 Azure Cloud Shell 作为终端。 可以通过 Azure 门户 或 Cloud Shell 登录访问 Cloud Shell。 无需在电脑或笔记本电脑上安装任何内容即可使用它。
注意
在本练习中,请将示例中的 myResourceGroupName 替换为现有资源组的名称或为此练习创建的资源组的名称。
使用 Azure CLI 创建 Linux VM
Azure CLI 包含用于在 Azure 中使用虚拟机的 vm 命令。 可提供几个用于执行特定任务的子命令。 最常见的包括:
| 子命令 | 说明 |
|---|---|
create |
新建虚拟机 |
deallocate |
解除分配虚拟机 |
delete |
删除虚拟机 |
list |
列出订阅中已创建的虚拟机 |
open-port |
为入站流量打开特定的网络端口 |
restart |
重启虚拟机 |
show |
获取虚拟机详细信息 |
start |
启动已停止的虚拟机 |
stop |
停止正在运行的虚拟机 |
update |
更新虚拟机属性 |
注意
有关命令的完整列表,可查看 Azure CLI 参考文档。
我们先从第一个命令 az vm create 开始。 你可以使用此命令在资源组中创建虚拟机。 你可以传递几个参数用于配置新 VM 的所有方面。 必须提供的四个参数包括:
| 参数 | 说明 |
|---|---|
--resource-group |
拥有虚拟机的资源组为:myResourceGroupName。 |
--name |
虚拟机名称;它在资源组中必须唯一。 |
--image |
用于创建 VM 的操作系统映像。 |
--location |
要在其中放置 VM 的区域。 通常此区域会离 VM 的使用者很近。 |
此外,添加 --verbose 标志有助于在创建 VM 时查看进度。
创建 Linux 虚拟机
让我们创建一个新的 Linux 虚拟机。 在 Azure Cloud Shell 中执行以下命令,以在“美国西部”位置创建一个 Ubuntu VM。
az vm create \
--resource-group "myResourceGroupName" \
--location westus \
--name SampleVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys \
--verbose
提示
可以使用“复制”按钮将命令复制到剪贴板。 要粘贴,请右键单击 Cloud Shell 终端中的新行,然后选择“粘贴”,或使用 Shift+Insert 键盘快捷方式(在 macOS 上为 ⌘+V)。
此命令新建一个名为 的 Ubuntu Linux 虚拟机。 请注意,Azure CLI 工具会在创建 VM 时等待。 你可以添加 --no-wait 选项以告知 Azure CLI 工具立即返回,并让 Azure 继续在后台创建 VM。 如果是在脚本中执行命令,这将非常有用。
我们将通过 --admin-username 标志将管理员帐户名指定为 azureuser。 如果你省略这一点,az vm create 命令会使用你的当前用户名。 由于每个操作系统的帐户名称规则不同,因此指定特定名称会更安全。
注意
大多数映像不允许使用“root”和“admin”等常用名称。
我们还会使用 generate-ssh-keys 标志。 Linux 分发版使用此参数,此参数会创建一对安全密钥,以便我们可使用 ssh 工具远程访问虚拟机。 这两个文件位于计算机和 VM 中的 .ssh 文件夹中。 如果目标文件夹中已有一个名为 id_rsa 的 SSH 密钥,则将使用该 SSH 密钥而不生成新密钥。
Azure CLI 创建完成 VM 后,将获得 JSON 响应,其中包含虚拟机的当前状态及 Azure 分配的公共和专用 IP 地址:
{
"fqdns": "",
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/Learn-bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/providers/Microsoft.Compute/virtualMachines/SampleVM",
"location": "westus",
"macAddress": "00-0D-3A-58-F8-45",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "40.83.165.85",
"resourceGroup": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"zones": ""
}