【问题标题】:VSTS hosted agent vs. private agentVSTS 托管代理与私人代理
【发布时间】:2018-06-15 08:17:18
【问题描述】:

在部署方面使用托管代理和私有代理有什么区别?

如果我错了,请纠正我 - 私有代理是一种私有托管的服务,它会持续检查是否有触发了新构建,因为它被配置为执行哪个构建定义,然后从 VSTS 中提取源代码并调用在该机器上进行本地 MSBuild。

如果在该构建定义中有要执行的 PowerShell 发布脚本,它也会运行该脚本 - 它可以处理实际部署等。

也许有更多的方法来处理部署,但托管代理如何工作?

为简单起见,我们假设只要触发了新构建,就应该将 ASP.NET 应用程序部署到 IIS。

【问题讨论】:

  • 您说“在部署方面”暗示您关心发布。但是你接着提到构建定义,这意味着它是你关心的构建。有区别。对于大多数构建,只要有必要的编译器可用,它们在哪里运行并不重要。对于版本,代理的运行位置可能很重要,因为您可能需要代理在位于 NAT 后面的网络内运行以部署到特定机器。

标签: asp.net iis tfs azure-pipelines


【解决方案1】:

应该使用 VSTS 构建来构建您的包,并且应该使用 VSTS 发布管理来进行部署。也可以通过构建执行部署任务,但更可控和推荐的方法是使用 VSTS 中的发布管理来进行部署。

托管代理

VSTS 有四个托管代理

  1. 没有 Visual Studio 2017 的托管代理
  2. 支持 Visual Studio 2017 的托管代理
  3. Linux 上的代理
  4. Mac 上的代理

这些托管代理可用于构建和部署到可从代理公开访问的服务器。假设您要部署到 Azure Web 应用程序,那么您可以使用 VSTS 发布管理中的托管代理来运行所需的部署脚本或任务。

但是这些托管代理没有“视线”到您的本地网络。例如,企业防火墙后面的机器不会公开。在这种情况下,托管代理无法部署到您公司防火墙后面的计算机上,因为该代理无法看到您的计算机。

私人代理

您可以在您的公司域中为 VSTS 设置代理,该代理可以通过 Web 访问 VSTS,因此它可以侦听任何部署作业。防火墙内的这个私有代理对防火墙内的计算机具有“视线”,因此代理可以对它们进行部署。

您可能需要私有代理进行构建的其他场景是,当您需要某些特定的 SDK 可用性时,托管代理不可用。假设您有一个基于 SharePoint 2013 的应用程序。要构建它,构建服务器需要安装 SharePoint 2013,托管代理中不提供此功能。您必须使用私有代理来设置 SharePoint 2013 以允许构建基于 SharePoint 2013 的应用程序。

详情请参阅here

部署组

您可以使用部署组对公司域防火墙内的机器进行部署,因为您将在需要部署的每台机器上部署私有代理。部署组解释here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多