练习 - 创建 VM 以托管 Web 应用程序

已完成

与大多数应用程序框架一样,可以在许多不同的环境中运行 MEAN 堆栈应用程序。 可在服务器机房的物理计算机、某个虚拟机或容器中运行应用程序。

此处,在运行于 Azure 上的虚拟机 (VM) 上运行应用程序。 MEAN 支持许多不同的操作系统。 出于学习目的,我们在此处使用 Ubuntu Linux。

注意

本练习为选做练习。 若要完成本练习,则需要在开始之前创建 Azure 订阅。 如果没有 Azure 帐户或不想暂时创建一个帐户,可以通读说明,以便了解所显示的信息。

注意

需要使用资源组来完成本练习中的步骤。 可以使用已创建的资源组,也可以专门为此练习创建新的资源组。 如果选择创建新的资源组,这样就可以更轻松地清理完成练习时创建的任何资源。 如果没有现有资源组或想要为此练习创建新的资源组,可以按照 使用 Azure 门户和 Azure 资源管理器 中的步骤管理资源组,使用 Azure 门户创建资源组,或者可以使用 Azure CLI 通过 Azure CLI 创建资源组,按照 “管理 Azure 资源组 ”中的步骤作。

创建 Ubuntu Linux VM

通常情况下,在 Azure 上创建其他资源之前,需要首先创建“资源组”。 资源组是保存与 Azure 解决方案相关资源的容器。 如果尚未创建资源组,可以运行以下命令,在附近的某个位置创建资源组。

az group create \
  --name <resource-group-name> \
  --location <resource-group-location>
  1. 打开 Azure Cloud Shell,然后选择 “设置>转到经典版本”。

  2. 在 Cloud Shell 中 az vm create ,运行命令以创建 Ubuntu VM。 将以下示例中的 myResourceGroupName 替换为现有资源组的名称或为此练习创建的资源组的名称。

    az vm create \
      --resource-group "myResourceGroupName" \
      --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/myResourceGroupName/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": "myResourceGroupName",
      "zones": ""
    }
    

    VM 的名称是“MeanStack”。 在以后的命令中会使用此名称来标识要使用的 VM。

  3. 在 VM 上打开端口 80 以允许传入的 HTTP 流量流入之后要创建的 Web 应用。

    az vm open-port \
      --port 80 \
      --resource-group "myResourceGroupName" \
      --name MeanStack
    
  4. 创建 SSH 与 VM 的连接。

    虽然 az vm create 命令的输出显示了 VM 的公共 IP 地址,但将地址存储在 Bash 变量中可能会比较方便。

    首先运行 az vm show。 此命令将 IP 地址保存在名为 ipaddress 的 Bash 变量中。

    ipaddress=$(az vm show \
      --name MeanStack \
      --resource-group "myResourceGroupName" \
      --show-details \
      --query [publicIps] \
      --output tsv)
    
  5. 像这样连接到 VM。

    ssh azureuser@$ipaddress
    

    当系统提示时,输入“是”以在本地保存 VM 的标识,以便将来的连接受信任。

    在接下来的部分中,你将使用 SSH 连接在虚拟机上配置软件。

摘要

Ubuntu VM 准备就绪后,便可安装 MEAN 堆栈的每个组件。 首先安装 MongoDB。