将 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 VM 的 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. 选择 “连续部署 ”图标,然后单击切换按钮以启用连续部署触发器。 将 分支添加为 生成分支筛选器

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

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

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

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

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

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

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

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

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

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

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

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

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

部署你的应用

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

  2. 确保选中要使用的项目版本,然后选择“ 创建”。

  3. 在信息栏消息中选择发布链接。 例如:“ Release Release-1 已排队”。

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

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