我们有一个现有的AzureDevOps CI / CD。对于每个项目,我们必须手动设置它,并为每个项目一个接一个地添加作业代理任务。
现在,我们决定使用IaC通过Terraform自动部署它(因为我们也一直在其他项目中使用它)。但是,除了this之外,没有多少可用的文档。它确实提供了有关如何配置项目本身的信息,但是没有那里的管道和其他内容的信息,目前还很有限,或者我可能只是找不到可用资源的完整文档。
我们热衷于使用Terraform自动创建CI / CD基础结构,但我只是无法创建代理作业和任务。
答案 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
希望这会有所帮助!