0

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

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

构建将如何执行以及将在哪个 VM 上复制源?

谢谢你。

4

3 回答 3

0

像其他人一样,我也不确定您要做什么,并且还认为跨多台机器的相同代理是不可能的。

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

在此处输入图像描述

于 2018-09-26T08:06:16.657 回答
0

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

这取决于你想做什么。

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

  2. 如果您想同时在 2 台服务器上工作,例如同时部署到 2 台服务器,那么您将创建一个“部署组”并将两台服务器添加到其中。您将从代理池/队列中注销这两个代理。从您的“部署组”复制 PowerShell 脚本片段并在每台计算机上运行它。这样,您可以在发布管道和部署中并行使用它,从而减少部署时间。

于 2018-09-26T16:26:00.100 回答
-1

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

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

于 2018-09-25T17:55:07.590 回答