Azure devops VST中的一个专用代理是否可以安装在多个VM上';s

Azure devops VST中的一个专用代理是否可以安装在多个VM上';s,azure-devops,azure-pipelines-build-task,azure-devops-self-hosted-agent,Azure Devops,Azure Pipelines Build Task,Azure Devops Self Hosted Agent,我已经在VM上安装了代理,并配置了CI构建管道。管道被触发,工作正常 现在我想使用相同的构建管道、相同的代理,但不同的VM。这可能吗? 构建将如何执行,源将复制到哪个VM上 谢谢。您可以在管道中设置一个变量,以便在构建时指定VM的名称 此外,一旦您有一个或多个代理,您就可以将它们添加到应用程序池中。运行构建时,它将从池中选择一个代理并使用该代理。与其他代理一样,我也不确定您要做什么,并且认为跨多台计算机使用同一个代理是不可能的 但是,如果您必须在虚拟机之间进行交替或轻松选择,则可以为每个虚拟机(

我已经在VM上安装了代理,并配置了CI构建管道。管道被触发,工作正常

现在我想使用相同的构建管道、相同的代理,但不同的VM。这可能吗?

构建将如何执行,源将复制到哪个VM上


谢谢。

您可以在管道中设置一个变量,以便在构建时指定VM的名称


此外,一旦您有一个或多个代理,您就可以将它们添加到应用程序池中。运行构建时,它将从池中选择一个代理并使用该代理。

与其他代理一样,我也不确定您要做什么,并且认为跨多台计算机使用同一个代理是不可能的

但是,如果您必须在虚拟机之间进行交替或轻松选择,则可以为每个虚拟机(用于此特殊场景)设置一个单独的代理队列,该队列中有一个代理。这样,您就可以在排队时通过代理队列下拉字段选择代理池。但这只有在手动触发时才起作用,而不是在典型的CI场景中。在这种情况下,每次要交换虚拟机时,都必须编辑定义以强制执行任何特定的虚拟机


否。这些专用代理应该具有唯一的名称,并分配给代理池/队列。如果他们有工作要做,他们将轮询VSTS/Azure Devops服务器。然后他们执行它。如果您克隆了一台具有相同私有构建代理的机器,那么理论上拾取它的代理将执行作业,但这是理论上的。我真的不知道代理队列将如何处理这个问题

这取决于你想做什么

  • 如果您想要分散工作负载,比如2个构建服务器,并让构建转到哪个构建服务器不忙的地方,那么您将创建1个代理池/队列。在一台服务器上创建专用代理并将其注册到该池中,然后在第二台服务器上取消注册该代理,然后重新注册该代理并将其添加到同一池中

  • 如果您想同时在两台服务器上工作,比如同时部署到两台服务器,那么您需要创建一个“部署组”,并将两台服务器都添加到该组中。您将从代理池/队列中注销这两个代理。从“部署组”复制PowerShell脚本片段并在每台计算机上运行。通过这种方式,您可以在发布管道和并行部署中使用它,这将减少部署所需的时间


  • “相同的代理,但不同的VM”?为什么?每个VM都应该有自己的代理,然后所有VM都应该在代理池中。你不能让一个代理在多台机器上运行,因为这在技术上是不可能的。你想解决什么问题?不同的虚拟机将有不同的代理,句号。当她说“相同的代理”时,我假设她指的是复制或相同的代理。比如,如果你必须在两台计算机上创建两个相同的文件。它们在物理上并不相同,但它们的相同之处在于它们是相同的。