Azure DevOps管道作为代码-验证ARM模板

时间:2020-05-21 05:47:06

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline

我正在探索Azure流水线作为代码,并想了解如何利用“ deploymentMode”来为每个Azure环境验证和部署ARM模板。

我已经通过Visual Builder在Azure DevOps中创建了发布管道,用于具有一个主要ARM模板和对应于Azure中每个环境的多个参数JSON文件的部署任务。这些管道中的每一个都有两个阶段。一个用于验证ARM模板,第二个用于部署。

我现在正在尝试将这些发布管道以代码形式转换为YAML格式的Azure管道,并希望创建一个YAML文件,用于合并每个环境的部署验证任务(deploymentMode:'Validation'),然后是实际的部署(deploymentMode: “增量”)。

1)在多环境发布周期中执行Azure DevOps Pipeline As代码是否正确?

2)YAML是否有两个阶段(一个阶段用于验证,另一个阶段用于部署),并且每个阶段都有许多任务(针对一个环境的每个任务)?

3)我是否需要首先在管道下的“环境”部分中创建每个Azure环境,并配置虚拟机以通过YAML文件管理各种环境的部署?

谢谢。

1 个答案:

答案 0 :(得分:0)

根据您的要求,您可以在 Azure管道->环境中为每个Azure环境配置虚拟机。然后您可以使用Yaml代码引用环境。

以下是步骤,您可以参考它们。

步骤1:Configure virtual machine(针对每个Azure环境)。

Virtual Machines

注意:如果虚拟机处于同一环境中,则需要为每个虚拟机添加标签。标签可用于区分同一环境中的虚拟机。

第2步:您可以创建Yaml文件并在其中添加多个阶段(例如,验证阶段和部署阶段)。每个阶段都可以使用环境并包含多个任务。

这里是一个例子:

trigger:
- master


stages:
  - stage: validation 
    jobs:
     - deployment: validation
       displayName: validation ARM
       environment:
        name: testmachine
        resourceType: VirtualMachine
        tags: tag
       strategy:
        runOnce:
          deploy:
            steps:
            - task: AzureResourceManagerTemplateDeployment@3
            ...
            - task: 
            ...
  - stage: deployment
    jobs:
     - deployment: deployment
       displayName: deploy 
       environment: 
        name: testmachine
        resourceType: VirtualMachine
        tags: tag
       strategy:
        runOnce:
          deploy:
            steps:
             - task: AzureResourceManagerTemplateDeployment@3
            ...
            - task: 
            ...

以下是有关using multiple stagesvirtual machines的文档。

希望这会有所帮助。