AzureDevOps + Terraform-创建代理作业和作业任务

时间:2020-02-14 07:13:46

标签: azure terraform devops

我们有一个现有的AzureDevOps CI / CD。对于每个项目,我们必须手动设置它,并为每个项目一个接一个地添加作业代理任务。

现在,我们决定使用IaC通过Terraform自动部署它(因为我们也一直在其他项目中使用它)。但是,除了this之外,没有多少可用的文档。它确实提供了有关如何配置项目本身的信息,但是没有那里的管道和其他内容的信息,目前还很有限,或者我可能只是找不到可用资源的完整文档。

我们热衷于使用Terraform自动创建CI / CD基础结构,但我只是无法创建代理作业和任务。

1 个答案:

答案 0 :(得分:1)

我们最终在去年创建了自己的分支,并添加了service connections之类的缺失内容。

但是,对于管道,此类Azure DevOps希望您将azure-pipelines.yml用于实际的管道定义。

要具有Terraform和Azure定义的版本,可以使用以下方法:

resource "azuredevops_build_definition" "build_definition" {
  project_id = azuredevops_project.project.id
  name       = "My Awesome Build Pipeline"
  path       = "\\"

  repository {
    repo_type   = "TfsGit"
    repo_name   = azuredevops_azure_git_repository.repository.name
    branch_name = azuredevops_azure_git_repository.repository.default_branch
    yml_path    = "path to your azure-pipelines.yaml file in the repo"
  }
}

因此在回购中,您仅通过azure-pipeline.yaml描述您要执行的管道来运行terraform。

Damian Brady于10月2日发布了一个不错的博客: https://damianbrady.com.au/2018/10/10/what-yaml-do-i-need-for-azure-pipelines/

关于受支持的Azure DevOps YAML架构,还有很多文档: https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema

一旦熟悉了基础知识,就可以开始使用模板,如果您发现了看似常见的模式: https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#template-references

希望这会有所帮助!