一,引言

  Azure Pipeline 管道是一个自动化过程;但是往往我们由于某种原因,需要在多个阶段之前获得批准之后再继续下一步流程,所以我们可以向Azure Pipeline 管道添加审批!批准流程可帮助我们进一步控制自己的管道;我们可以控制管道内特定阶段的 Step 开始,通过审批,并决定 Azure Pipeline 管道何时完成。

而至于为什么要添加审批流程,是因为基础设施资源的部署是需要进行评估,慎重操作。有了审批,可以查看前一阶段以确认配置代码是否正确。

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

--------------------Azure Terraform 系列--------------------

1,Azure Terraform(一)入门简介

2,Azure Terraform(二)语法详解

3,Azure Terraform(三)部署 Web 应用程序

4,Azure Terraform(四)状态文件存储

5,Azure Terraform(五)利用Azure DevOps 实现自动化部署基础资源

6,Azure Terraform(六)Common Module

7,Azure Terraform(七)利用Azure DevOps 实现自动化部署基础资源(补充)

8,Azure Terraform(八)利用Azure DevOps 实现Infra资源和.NET CORE Web 应用程序的持续集成、持续部署

9,Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布

二,正文

1,Azure DevOps 创建新的项目

登录 Azure DevOps 的地址:https://www.dev.azure.com ,点击 “+ New project” 创建新的项目

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

输入项目描述等信息

Project name:“Terraform_CnBateBlogWeb_AutoDeploy”

Visibility 选择:“Private” ----- (根据现有项目进行设置)

Version control 选择 “Git”

Work item process:“Agile”

确认完以上信息,点击 “Create” 进行创建。

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

2,配置Azure DevOps 审批

选择左侧菜单 ”Pipelines =》Environments“,点击 ”Create environment“ 创建环境

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

输入配置以下参数

Name:”Approve_AutoDeploy"

Resoure 选择:“None” (默认即可)

点击 “Create” 创建环境

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

接下来为当前 “Approve_AutoDeploy” 环境创建审批

点击红色箭头所指,选择 “Approve and checks” 添加审批请求

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

选择 "Approvals" ,并将自己设置为申请人

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

添加完成后,可看到类型为 “Approvals” 的记录,大家需要注意的是,审批的过期时间默认是 “30天”,大家可以根据实际情况更改。

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

3,配置 Azure DevOps Pipeline 

选择左侧菜单 “Pipelines”,点击 “Create Pipeline“ 创建 管道作业

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

今天不使用经典编辑器模式,而选择 GitHub (yaml)

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

选择对应的 TF Code 的代码仓库

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

选择 “Start Pipeline” 开启新的管道构建部署代码

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

Azure DevOps 会为我们自动在项目根目录生成一个名称叫 “azure-pipelines.yaml” 的文件,我们将定义好的管道步骤添加到该文件中

Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布-LMLPHP

管道步骤审批 yaml 示例代码

jobs:
    - deployment: terraform_apply
      continueOnError: false
      environment: 'Approve_Production'
      timeoutInMinutes: 120
      strategy:
       runOnce:
        deploy:
            steps:
01-14 06:24