将 Web 应用部署到在 Linux 虚拟机(经典)上运行的 NGINX Web 服务器

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

注意

如果要使用 YAML 管道将应用程序部署到 Linux 虚拟机,请参阅部署到 Linux 虚拟机

了解如何使用经典 Azure Pipelines 生成 Web 应用并将其部署到 Linux 虚拟机上运行的 NGINX Web 服务器。

先决条件

Linux VM 先决条件

  • 如果还没有一个具备 Nginx Web 服务器的 Linux VM,请按照本快速入门中的步骤在 Azure 中创建一个。

获取代码

如果没有存储库,请将以下示例项目与本教程配套使用:

https://github.com/MicrosoftDocs/pipelines-javascript

生成应用

设置部署组

使用部署组可以更轻松地组织要用于托管应用的服务器。 部署组是一组计算机,每台计算机上都有一个 Azure Pipelines 代理。 每台计算机都与 Azure Pipelines 进行交互,以协调应用部署。

  1. 打开与 Linux 虚拟机的 SSH 会话。 可以使用 Azure 门户右上角的“Cloud Shell”按钮执行此操作。

    显示 Azure Cloud Shell 按钮的屏幕截图

  2. 运行以下命令以启动会话。 将占位符替换为 VM 的 IP 地址:

    ssh <publicIpAddress>
    
  3. 运行以下命令以安装所需的依赖项,以在 Linux 虚拟机上设置生成和发布代理。 有关更多详细信息,请参阅自托管 Linux 代理

    sudo apt-get install -y libunwind8 libcurl3
    
  4. 在 Azure DevOps Web 门户中,选择“管道”,然后选择“部署组”。

  5. 选择“添加部署组”(如果已有部署组,则选择“新建”)。

  6. 输入组的名称(例如 myNginx),然后选择“创建”。

  7. 对于“要注册的目标类型”,选择“Linux”,并确保选中“在脚本中使用个人访问令牌进行身份验证”。 选择“将脚本复制到剪贴板”。 此脚本将在 VM 上安装和配置代理。

  8. 返回到 Azure 门户中的 SSH 会话,粘贴并运行脚本。

  9. 当系统提示你为代理配置标记时,按 Enter 跳过。

  10. 等待脚本完成并显示消息“已启动 Azure Pipelines 代理”。 键入“q”退出文件编辑器并返回到 shell 提示符。

  11. 返回 Azure DevOps 门户的“部署组”页上,打开 myNginx 部署组。 选择“目标”选项卡,验证你的 VM 已列出。

创建发布管道

  1. 选择“管道”>“发布”,然后选择“新建管道”。

  2. 选择“空作业”。

  3. 选择“添加工件”以链接生成工件。 选择“生成”,然后从下拉菜单中选择“项目”和“源”。 完成后,选择“添加”。

  4. 选择“持续部署”图标,然后单击切换按钮以启用持续部署触发器。 将 main 分支添加为“生成分支筛选器”。

    显示如何设置持续部署触发器的屏幕截图

  5. 选择“任务”,然后选择“代理作业”并将其移除。

    显示如何移除代理作业的屏幕截图

  6. 选择省略号图标,然后选择“添加部署组作业”。 将添加到此作业的任务将在部署组中的每个服务器上运行。

    显示如何添加部署组作业的屏幕截图

  7. 从“部署组”下拉菜单中选择之前创建的部署组。

    显示如何选择部署组的屏幕截图。

  8. 选择 + 以添加新任务。 搜索 Bash,然后选择“添加”将其添加到管道。

    显示如何添加 bash 任务的屏幕截图。

  9. 选择浏览按钮以添加 deploy.sh 脚本文件的路径。 请参阅此处的 nodeJS 部署脚本示例。

    显示如何添加脚本路径的屏幕截图。

  10. 完成后,选择“保存”。

    显示如何保存发布管道的屏幕截图。

部署你的应用

  1. 选择“发布”,然后选择“创建发布”。

  2. 确保选择了要使用的工件版本,然后选择“创建”。

  3. 选择信息栏消息中的发布链接。 例如“发布‘发布-1’已排队”。

  4. 选择“阶段”中的状态链接以查看部署日志。

  5. 发布完成后,导航到你的应用并验证其内容。