Azure DevOps Pipeline执行Terraform Init步骤失败故障求助
报错原因定位
报错核心矛盾为:Terraform安装任务成功安装了0.14.11版本,但后续CLI执行任务错误地尝试调用1.0.0版本的执行文件,对应路径不存在触发ENOENT报错,该问题由你使用的第三方Terraform任务插件(charleszipp出品)的版本匹配逻辑异常、加上配置语法问题共同导致。
排查解决步骤
- 首先修复Pipeline变量的缩进错误:YAML语法对缩进敏感,你当前配置中
value字段和name字段平级,会导致工作目录参数读取异常,修改后的变量配置如下:
variables: - name: terraform-working-directory value: '$(System.DefaultWorkingDirectory)/terraform/'
- 给Terraform CLI任务显式指定版本参数:强制CLI任务调用你安装的
0.14.11版本,避免任务默认读取缓存的1.0.0版本路径,修改后的init任务配置如下:
- task: charleszipp.azure-pipelines-tasks-terraform.azure-pipelines-tasks-terraform-cli.TerraformCLI@0 displayName: 'init' inputs: command: 'init' workingDirectory: $(terraform-working-directory) backendType: 'self-configured' terraformVersion: '0.14.11'
- 校验Azure服务连接权限:本地执行用的是你个人账号的权限,Pipeline用的是关联的Azure服务连接权限,需要确认该服务连接对backend配置中指定的存储账号有「存储Blob数据参与者」权限,避免认证失败衍生的执行异常。
- 可选加诊断步骤验证安装结果:在Terraform安装任务后、init任务前插入bash任务,确认版本安装是否正常,配置如下:
- bash: | which terraform terraform --version ls /opt/hostedtoolcache/terraform/ displayName: '诊断Terraform安装情况'
内容的提问来源于stack exchange,提问作者betaros
相关产品推荐
相关产品推荐

