练习 - 创建 VM 以托管 Web 应用程序
与大多数应用程序框架一样,可以在许多不同的环境中运行 MEAN 堆栈应用程序。 可在服务器机房的物理计算机、某个虚拟机或容器中运行应用程序。
此处,在运行于 Azure 上的虚拟机 (VM) 上运行应用程序。 MEAN 支持许多不同的操作系统。 出于学习目的,我们在此处使用 Ubuntu Linux。
创建 Ubuntu Linux VM
通常情况下,在 Azure 上创建其他资源之前,需要首先创建“资源组”。 资源组是保存与 Azure 解决方案相关资源的容器。 在本练习中,Azure 沙盒提供资源组。 但是,在自己的 Azure 订阅中工作时,你会使用以下命令在附近位置创建资源组。
注意
以下 az group create
代码示例供你使用自己的帐户(而非此沙盒)运行!
az group create \
--name <resource-group-name> \
--location <resource-group-location>
在屏幕右上角的 Cloud Shell 窗口中,选择“设置”>“转到经典版本”。
在 Cloud Shell 中,运行
az vm create
命令以创建 Ubuntu VM:az vm create \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name MeanStack \ --image Canonical:0001-com-ubuntu-server-focal:20_04-lts:latest \ --admin-username azureuser \ --generate-ssh-keys
此命令需要约两分钟的时间才能完成。 命令完成后,你会看到类似于以下示例的输出:
(Output Example) { "fqdns": "", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/MeanStack", "location": "eastus", "macAddress": "00-0D-3A-1E-1B-3B", "powerState": "VM running", "privateIpAddress": "10.0.0.5", "publicIpAddress": "104.211.9.245", "resourceGroup": "<rgn>[sandbox resource group name]</rgn>", "zones": "" }
VM 的名称是“MeanStack”。 在以后的命令中会使用此名称来标识要使用的 VM。
在 VM 上打开端口 80 以允许传入的 HTTP 流量流入之后要创建的 Web 应用。
az vm open-port \ --port 80 \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name MeanStack
创建 SSH 与 VM 的连接。
虽然
az vm create
命令的输出显示了 VM 的公共 IP 地址,但将地址存储在 Bash 变量中可能会比较方便。首先运行
az vm show
。 此命令将 IP 地址保存在名为ipaddress
的 Bash 变量中。ipaddress=$(az vm show \ --name MeanStack \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --show-details \ --query [publicIps] \ --output tsv)
像这样连接到 VM。
ssh azureuser@$ipaddress
当系统提示时,输入“是”以在本地保存 VM 的标识,以便将来的连接受信任。
在接下来的部分中,你将使用 SSH 连接在虚拟机上配置软件。
摘要
Ubuntu VM 准备就绪后,便可安装 MEAN 堆栈的每个组件。 首先安装 MongoDB。