如何在Azure DevOps流水线中应用terraform.tfvars执行Terraform Plan命令
问题原因
你的报错是因为Terraform执行plan命令时,未获取到acr_demo等已声明变量的赋值,触发了交互式输入要求,Azure DevOps流水线无人工交互入口,任务等待超时后被取消。核心问题是你没有在命令参数中指定prod_terraform.tfvars变量文件的加载路径。
调整方案
直接将-var-file=prod_terraform.tfvars参数追加到commandOptions字段即可,注意-var-file与参数值之间不要加空格,避免命令解析错误。
修改后的YAML配置如下:
- task: TerraformCLI@0 displayName: Terraform Plan inputs: command: 'plan' workingDirectory: '$(System.DefaultWorkingDirectory)/terraform-manifests' commandOptions: '-var-file=prod_terraform.tfvars -out aks_cluster.tfplan' allowTelemetryCollection: false
注意事项
- 确认
prod_terraform.tfvars文件确实存储在你指定的工作目录$(System.DefaultWorkingDirectory)/terraform-manifests下,如果文件存放在其他路径,需要填写相对于工作目录的相对路径或者完整绝对路径。 - Terraform官方要求
-var-file参数的语法为-var-file=文件名,中间加空格的写法-var-file = 文件名无法被正确识别。
内容的提问来源于stack exchange,提问作者Satyam Pandey
相关产品推荐
相关产品推荐

