我正在通过terraform创建Azure devops构建管道,并希望我的构建变量在创建构建时通过外部文件传递。相同的地形代码将用于创建不同模板的管道,因此相应的变量也将改变,所以为了使它可用于所有管道,我希望我的地形代码从外部文件中获取构建管道变量并创建它。也不能用可变组。因此,如果有任何其他过程请建议。任何帮助或建议将非常感激。
resource "azuredevops_build_definition" "build" {
project_id = azuredevops_project.project.id
name = "Sample Build Definition"
path = "\ExampleFolder"
ci_trigger {
use_yaml = true
}
variable {
name = "PipelineVariable"
value = "Go Microsoft!"
}
variable {
name = "PipelineSecret"
secret_value = "ZGV2cw"
is_secret = true
}
上面传递的变量应该从外部文件传递。
您只需要为您需要的值定义地形变量,并在资源中使用它们:
variable "buildinfo"{ type = string default = "my value" }
而在资源中你只需要使用:
.... value = var.buildinfo ....
如果您使用CI
,则可以在每次运行时使用tfvars文件或在管道变量中传递变量值。你可以这样做:
起程拓殖:
variable "PipelineVariable"" {
}
然后在管道中定义变量,如TF_VAR_PipelineVariable
或在使用source .env
调用文件(示例文件:.env)的任何阶段:
.env:
export TF_VAR_PipelineVariable=CONTENT