部署 Linux VM 以在 Azure Stack Hub 中托管 Web 应用

可以使用 Azure 市场中的 Ubuntu 映像托管使用 Web 框架创建的 Web 应用来创建和部署基本的 Linux 虚拟机(VM)。

此 VM 可以使用以下方法托管 Web 应用:

  • Python:常见的 Python Web 框架包括 Flask、Bottle 和 Django。
  • Go:常见 Go 框架包括 Revel、Martini、Gocraft/web 和 Gorilla。
  • Ruby:将 Ruby on Rails 设置为提供 Ruby Web 应用的框架。
  • Java:使用 Java 开发发布到 Apache Tomcat 服务器的 Web 应用。 可以在 Linux 上安装 Tomcat,然后将 Java WAR 文件直接部署到服务器。

本文介绍如何使用任何使用 Linux OS 的 Web 应用、框架和后端技术启动和运行。 然后,可以使用 Azure Stack Hub 来管理基础结构,并使用技术中的管理工具来处理应用的维护任务。

为 Web 应用部署 Linux VM

在此过程中,你将创建一个密钥,使用 Linux VM 的基本映像,指定 VM 的特定属性,然后创建 VM。 创建 VM 后,打开使用 VM 和 VM 托管应用所需的端口。 接下来,创建 DNS 名称。 最后,连接到 VM 并使用 apt-get 实用工具更新计算机。 完成此过程后,Azure Stack Hub 实例中有一个 VM,可以托管 Web 应用。

在开始之前,请确保已准备好所需的一切。

先决条件

有权访问 Ubuntu Server 16.04 LTS 映像的 Azure Stack Hub 订阅。 可以使用更高版本的映像,但这些说明是考虑到 16.04 LTS 编写的。 如果没有此映像,请联系云服务提供商,获取映像并将其添加到 Azure Stack Hub 市场。

使用门户部署 VM

若要部署 VM,请按照后续部分中的说明进行操作。

创建 VM

  1. 为服务器创建安全外壳(SSH)公钥。 有关详细信息,请参阅 如何使用 SSH 公钥

  2. 在 Azure Stack Hub 门户中,选择创建资源>计算>Ubuntu Server 16.04 LTS

    将 Web 应用部署到 Azure Stack Hub VM

  3. 在“创建虚拟机”窗格中,对于“1. 配置基本设置”:

    1. 输入 VM 的名称

    2. 选择 VM 磁盘类型高级 SSD(对于高级磁盘 [SSD])或 标准 HDD(对于标准磁盘 [HDD])。

    3. 输入你的用户名

    4. 选择 身份验证类型SSH 公钥

    5. 检索创建的 SSH 公钥。 在文本编辑器中打开它,复制密钥,然后将其粘贴到 SSH 公钥 框中。 包含从 ---- BEGIN SSH2 PUBLIC KEY -------- END SSH2 PUBLIC KEY ---- 的文本。 将整个文本块粘贴到键框中:

      ---- BEGIN SSH2 PUBLIC KEY ----
      Comment: "rsa-key-20190207"
      <Your key block>
      ---- END SSH2 PUBLIC KEY ----
      
    6. 选择 Azure Stack Hub 实例的订阅。

    7. 创建新的资源组或使用现有资源组,具体取决于要如何为应用组织资源。

    8. 选择你的位置。 Azure Stack 开发工具包(ASDK)通常位于 本地 区域。 位置取决于 Azure Stack Hub 实例。

  4. 对于“2. 大小”,请键入:

    • 选择 Azure Stack Hub 实例中可用的 VM 的数据和 RAM 大小。
    • 可以通过 计算类型CPU存储空间来浏览列表或筛选 VM 的大小。

    注意

    • 显示的价格是本地货币的估计值。 它们仅包括 Azure 基础结构成本,以及与订阅和位置相关的任何折扣。 它们不包括任何适用的软件成本。
    • 建议的大小由所选映像的发布者确定,并基于硬件和软件要求。
    • 使用标准磁盘(HDD)而不是高级磁盘(SSD)可能会影响操作系统性能。
  5. 在“3. 配置可选功能”中,键入:

    1. 对于“高可用性”,请选择一个可用性集。 为了给您的应用程序提供冗余,请将两台或更多虚拟机分组到一个可用性集中。 此配置可确保在计划内或计划外维护事件期间,至少有一个虚拟机可用,并满足 99.95% Azure 服务级别协议(SLA)。 创建虚拟机后,无法更改虚拟机的可用性集。

    2. 对于 存储,请选择 高级磁盘(SSD)标准磁盘(HDD)。 高级磁盘(SSD)由固态硬盘提供支持,并提供一致的低延迟性能。 它们提供价格和性能之间的最佳平衡,非常适合 I/O 密集型应用程序和生产工作负荷。 标准磁盘由磁驱动器提供支持,更适合不经常访问数据的应用程序。 区域冗余磁盘由区域冗余存储服务(ZRS)提供支持,将数据复制到多个区域,即使某个区域出现故障,数据依然可用。

    3. 选择“使用托管磁盘”。 启用此功能时,Azure 会自动管理磁盘的可用性。 可以从数据冗余和容错中受益,而无需自行创建和管理存储帐户。 托管磁盘可能无法在所有区域中使用。 有关详细信息,请参阅 Azure 托管磁盘简介

    4. 若要配置网络,请选择 虚拟网络。 虚拟网络在逻辑上彼此隔离在 Azure 中。 可以配置其 IP 地址范围、子网、路由表、网关和安全设置,这与数据中心中的传统网络非常类似。 默认情况下,同一虚拟网络中的虚拟机可以相互访问。

    5. 若要配置子网,请选择 子网。 子网是虚拟网络中的一系列 IP 地址。 可以使用子网将虚拟机彼此隔离或与 Internet 隔离。

    6. 若要配置对 VM 或 VM 上运行的服务的访问权限,请选择 公共 IP 地址。 使用公共 IP 地址从虚拟网络外部与虚拟机通信。

    7. 选择 网络安全组基本高级。 设置允许或拒绝发到 VM 的网络流量的规则。

    8. 若要为 VM 的常见或自定义协议设置访问权限,请选择 公共入站端口。 该服务指定此规则的目标协议和端口范围。 可以选择预定义的服务,例如远程桌面协议(RDP)或 SSH,或者提供自定义端口范围。 对于 Web 服务器,请使用 HTTP (80)、HTTPS (443)和 SSH (22) 打开。 如果计划使用 RDP 连接管理计算机,请打开端口 3389。

    9. 若要将扩展添加到 VM,请选择 扩展。 扩展将配置管理或防病毒保护等新功能添加到虚拟机。

    10. 禁用或启用“监视”。 为了帮助诊断启动问题,可以使用监视来捕获主机上运行的虚拟机的串行控制台输出和屏幕截图。

    11. 若要指定保存指标的存储帐户,请选择 诊断存储帐户。 指标将写入存储帐户,以便可以使用自己的工具对其进行分析。

    12. 选择“确定”

  6. 复查“4. 摘要”:

    • 门户会验证设置。
    • 若要使用 Azure 资源管理器工作流重复使用设置,可以下载 VM 的 Azure 资源管理器模板。
    • 验证通过后,选择“确定”。 VM 部署需要几分钟时间。

指定打开的端口和 DNS 名称

若要使 Web 应用可供网络上的用户访问,请打开用于连接到计算机的端口,并添加友好 DNS 名称,例如 mywebapp.local.cloudapp.azurestack.external,用户可以在其 Web 浏览器中指定。

打开入站端口

可以修改预定义服务(如 RDP 或 SSH)的目标协议和端口范围,或者提供自定义端口范围。 例如,你可能想要使用 Web 框架的端口范围。 例如,GO 在端口 3000 上进行通信。

  1. 打开租户的 Azure Stack Hub 门户。

  2. 搜索你的 VM。 你可能已将 VM 固定到仪表板,也可以在 搜索资源 框中搜索它。

  3. 在 VM 窗格中选择“网络”

  4. 选择 添加入站端口规则 以打开端口。

  5. 对于“源”,请保留默认选项“任何”

  6. 对于“源端口范围”,请保留通配符 (*)。

  7. 对于 目标端口范围,请输入要打开的端口,例如 3000

  8. 对于“协议”,请保留默认选项“任何”。

  9. 对于“操作”,请选择“允许”。

  10. 对于 优先级,请保留默认选择。

  11. 输入 名称说明,以帮助记住端口打开的原因。

  12. 选择“添加”。

为服务器添加 DNS 名称

此外,还可以为服务器创建 DNS 名称,以便用户可以使用 URL 连接到网站。

  1. 打开租户的 Azure Stack Hub 门户。

  2. 搜索你的 VM。 你可能已将 VM 固定到仪表板,也可以在 搜索资源 框中搜索它。

  3. 选择“概述”。

  4. VM下,选择 配置

  5. 对于“分配”,请选择“动态”。

  6. 输入 DNS 名称标签(如 mywebapp),以便完整 URL 变为 mywebapp.local.cloudapp.azurestack.external(对于 ASDK 应用)。

通过 SSH 进行连接以更新 VM

  1. 在与 Azure Stack Hub 实例相同的网络上,打开 SSH 客户端。 有关详细信息,请参阅 将 SSH 密钥对与 Azure Stack Hub配合使用。

  2. 输入以下命令:

        sudo apt-get update
        sudo apt-get -y upgrade
    

后续步骤

了解如何在 Azure Stack Hub 设置开发环境。