65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Azure Pipeline 部署 Windows 服务

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2018年11月14日

CPOL

4分钟阅读

viewsIcon

76116

为 Windows 服务设置使用 Azure Pipeline 的自动化生成和部署。

在 GIT 仓库中创建项目

在 Visual Studio 中创建一个 win service 项目,并配置 git 仓库以将代码推送到 GIT。代码推送到 GIT 后,构建将自动启动。

在 Azure DevOps 中创建一个组织

为了开始使用 Azure Pipeline,我们需要在 Azure Devops 中创建一个组织和项目。下面的 Microsoft 文档显示了如何使用个人 Microsoft 帐户或工作/学校帐户创建组织的步骤。使用您的工作或学校帐户可将您的组织自动连接到您的 Azure AD。

请按照以上链接完成组织设置并创建项目。完成此步骤后,我们就可以设置第一个生成管道了。

设置生成管道

我创建了一个名为 Main 的项目。转到项目的概览页面,然后选择 Pipelines -> Builds -> New -> New build pipeline

将打开一个新窗口,供您选择源分支、仓库和用于生成的源分支。根据您的项目选择以下选项。

选择 .NET Desktop 模板,因为我可以充分利用大多数预定义的管道步骤,这些步骤适合我的 windows 服务生成。输入管道名称,并选择任何给定的 Microsoft 托管代理,或者您可以选择自己的作业(默认 - 无代理)。在本例中,我使用的是 Microsoft 托管代理(Hosted VS2017),它非常适合我的生成。要了解更多关于代理池的信息,请单击 此处

.NET Desktop 模板具有 build_pipeline5.JPG 默认作业列表。对于此项目,我将保留 Nuget、Nuget restore、Build solution 和 VsTest 任务的默认值。如果您不想要这些任务中的任何一个,只需在代理下选择特定任务并将其删除。

选择 Publish symbols path 任务,并按如下方式输入详细信息,其他字段保留默认值。

选择 Copy Files 任务,并按如下方式输入信息,其他字段保留默认值。

选择 Publish Artifact 任务,输入信息如下,其他字段保留默认值。

然后单击 Save

获取状态徽章(请参阅此 Microsoft 文档中 获取状态徽章 部分),并将其添加到 github 分支的 README.md 文件中,如下所示。

选择 Trigger 菜单,然后选择 Enable continuous integration 选项并保存。

将排队并开始第一次生成。生成已触发并成功完成。现在我们已经使用 Azure Pipeline 自动化了生成。此后,每当代码发生更改时,都会自动触发生成。

创建部署组并预配代理

要访问目标服务器来部署应用程序,我们需要创建部署组。部署组是逻辑上的一组部署目标计算机,每台服务器上都安装有代理。

请按照 此链接 创建部署组并在 VM 中预配代理。

在此阶段,部署组已在 Azure DevOps 中创建,并且代理安装脚本已在目标计算机上成功运行。接下来,我们将继续设置发布管道。

设置发布管道

请按照以下步骤设置发布管道。

  1. 选择 Release pipeline -> New -> New release pipeline -> Select template -> Choose Empty Job

  2. 选择 artifact 任务,填写信息如下,然后单击 add。在这里,我们将生成 artifact 配置为发布的源。

  3. 如下启用持续发布。这主要适用于 SIT/UAT 环境。对于生产环境,情况并非如此,因为我们是根据计划进行部署。

  4. 选择 view stage tasks,并按顺序添加/修改以下任务。请参阅下面的屏幕截图。选择 stage task 并添加一个部署组作业。添加后,选择部署组作业并更新以下信息,其他字段保留默认值。

  5. 选择 Agent job 并按如下方式更新信息。

  6. 从 marketplace 安装 WinRM File Copy 任务模板,并通过单击 Agent job 上的 Add a task 来添加此任务。

    • DisplayName 可以是任何名称
    • Source 是 artifact 所在的位置
    • Machine 是虚拟机 IP(目标服务器 IP)
    • 输入 VM 管理员登录名和密码
    • 要在其中托管您的 windows 服务的虚拟机文件夹路径
  7. 添加 Command Line 任务并按如下方式更新模板

    这些 SC 命令有助于在虚拟机中停止、删除、安装和启动 windows 服务。您可以根据需要修改脚本。

  8. 单击 Save,然后选择 Release 开始将 windows 服务部署到目标服务器。

好了!已成功将 win service 部署到虚拟机。

关注点

当我开始探索 Azure devops 时,它让生活变得更轻松,这很有趣 :)。还有很多东西需要学习并在您的项目中加以利用。

本文将帮助您了解如何设置 CI/CD 管道。您可以尝试 Azure DevOps 的其他功能,并加强您的 DevOps 技能。

祝您学习愉快!如果您对本文有任何改进意见,请在下方评论。

© . All rights reserved.