我正在尝试在 Azure Devops (YAML) 中做一些我可以使用部署目标和角色在 Octopus Deploy 中实现的事情。在本地部署时。
我们将代理池分为应用程序/环境池。因此,从权限的角度来看,池中的每个代理只能部署到给定的环境和给定的应用程序(使用特定的本地代理)。
我希望能够说我“为满足某些标准的所有代理运行此部署”,即池中的所有代理,或者有需求或能力的代理。
鉴于每个池都用于一个应用程序和环境,我希望能够说“为所有池运行此部署”。
我不想对我的管道进行硬编码或让其了解应用程序的部署位置。
就像我在 Octopus 中所说的那样,您只需指定一个角色,然后使用具有该角色的所有部署目标。
救命!
您只需指定一个角色,所有具有该角色的部署目标都会被使用
Azure DevOps 中没有这样的角色。作为解决方法,您可以在部署作业中使用环境和滚动部署策略。您可以向环境内的虚拟机添加不同的标签,这样您就可以将环境中的一组特定虚拟机作为部署目标。
jobs:
- deployment: VMDeploy
displayName: VMDeploy
environment:
name: Dev
resourceType: VirtualMachine
tags: tag1
strategy:
rolling:
maxParallel: 3
deploy:
steps:
在上面的示例中,名为“Dev”的环境中最多可以并行部署 3 个虚拟机,并且这些虚拟机都具有“tag1”。