Tfs 在代理阶段,如何在多台服务器上触发发布定义中存在的一个任务?

Tfs 在代理阶段,如何在多台服务器上触发发布定义中存在的一个任务?,tfs,azure-devops,continuous-integration,build-agent,Tfs,Azure Devops,Continuous Integration,Build Agent,我使用的是TFS 2017 update 3,在TFS 2017中,我有一个发布定义,其中我有一个命令行任务Through,我通过传递如下参数来调用自动化应用程序的cli “C:\Program Files(x86)\Auto-2019-Q1\Auto Cli”-scriptName“Driver\u Smoke.xlsx”-scriptLocation“C:\Next\u Gen” 它确实成功地运行了应用程序,但现在我必须在多台服务器上运行相同的任务,我已经配置了构建代理,以便可以在多台服务器

我使用的是TFS 2017 update 3,在TFS 2017中,我有一个发布定义,其中我有一个命令行任务Through,我通过传递如下参数来调用自动化应用程序的cli

“C:\Program Files(x86)\Auto-2019-Q1\Auto Cli”-scriptName“Driver\u Smoke.xlsx”-scriptLocation“C:\Next\u Gen”

它确实成功地运行了应用程序,但现在我必须在多台服务器上运行相同的任务,我已经配置了构建代理,以便可以在多台服务器上同时执行自动化

为此,我在发布定义中添加了一个代理阶段,并在需求中添加了代理名称,但它仅在一台服务器上工作,而不能在另一台服务器上同时工作

但是,我可以添加另一个代理阶段选项,然后给出另一个服务器的代理名称,但是我必须等待上一个代理阶段任务完成。这需要很多时间


我试着在要求中给两个探员起名,但不是那样的。那么,在发布定义中是否可以同时在多台服务器上运行一个任务?

我发现了一个解决方法,使用TFS发布定义中的现有任务。我所做的是

  • 我在每台服务器上配置了两个部署代理
  • 将上述cli命令复制到记事本中,并创建其批处理文件
  • 在任务计划程序中创建了一个任务,以便在启动生成代理服务时执行批处理文件
  • 在发布定义中,一旦包的部署完成,之后我们需要使用该工具运行自动化,我在RD中添加了一个运行代理任务,并将其中一个生成代理名称与我需要运行自动化工具的位置相关联。在运行代理任务下,我添加了3个任务,即一个启动服务,两个停止服务。您可以在需要运行自动化工具的多台服务器上重复同一组任务
  • 因此,在这里,当部署完成时,代理上的运行任务将启动,它首先停止服务,然后启动服务,由于该服务,在tasks scheduler中创建的任务将被触发,工具将被执行,然后您可以停止服务,因为您不再需要运行该服务。 通过使用这个过程,我不再需要等待很长时间,只需要几秒钟就可以在多台服务器上同时运行自动化工具
    我使用TFS发布定义中的现有任务找到了一个解决方法。我所做的是

  • 我在每台服务器上配置了两个部署代理
  • 将上述cli命令复制到记事本中,并创建其批处理文件
  • 在任务计划程序中创建了一个任务,以便在启动生成代理服务时执行批处理文件
  • 在发布定义中,一旦包的部署完成,之后我们需要使用该工具运行自动化,我在RD中添加了一个运行代理任务,并将其中一个生成代理名称与我需要运行自动化工具的位置相关联。在运行代理任务下,我添加了3个任务,即一个启动服务,两个停止服务。您可以在需要运行自动化工具的多台服务器上重复同一组任务
  • 因此,在这里,当部署完成时,代理上的运行任务将启动,它首先停止服务,然后启动服务,由于该服务,在tasks scheduler中创建的任务将被触发,工具将被执行,然后您可以停止服务,因为您不再需要运行该服务。 通过使用这个过程,我不再需要等待很长时间,只需要几秒钟就可以在多台服务器上同时运行自动化工具
    您可以使用部署组。@Daniel Mann,我认为部署组功能在2017年TFS中不可用,从2018年TFS开始支持。如果我错了,请纠正我。市场上是否有任何人知道的插件可用?您可以使用部署组。@Daniel Mann,我认为部署组功能在2017年TFS中不可用,它从2018年TFS开始受支持。如果我错了,请纠正我。市场上有没有任何人知道的插件?