You need to enable JavaScript to run this app. 如何通过BitBucket Pipelines触发Terraform Cloud远程执行plan和apply操作
优惠活动
大模型
产品
解决方案
定价
更多

如何通过BitBucket Pipelines触发Terraform Cloud远程执行plan和apply操作

问题原因

你当前的配置仅将Terraform Cloud作为状态存储后端使用,默认执行模式为本地执行,因此在BitBucket Pipelines中运行terraform命令时,会读取当前执行环境(BitBucket Runner)本地目录下的Terraform配置文件。你在应用仓库中仅存放了后端配置文件,没有实际的基础设施代码,所以触发了找不到配置文件的报错。
而你在Terraform Cloud UI手动触发任务时,平台会拉取工作空间绑定的GitLab仓库中的完整配置执行,和本地触发的默认执行逻辑不一致。

可行解决方案

方案1:开启Terraform Cloud远程执行模式(最推荐,符合你的预期)

该方案可以实现本地/流水线触发命令,远程使用TFC绑定的GitLab仓库代码执行任务,和UI操作逻辑完全一致。

  • 第一步:修改BitBucket应用仓库中的terraform.tf配置,显式指定远程执行模式,参考配置如下:
terraform {
  backend "remote" {
    hostname     = "app.terraform.io"
    organization = "替换为你的TFC组织名"

    workspaces {
      name = "testworkspace"
    }
  }
}
  • 第二步:调整BitBucket Pipelines配置,无需额外修改命令逻辑,原有terraform plan/apply命令会自动将执行请求发送到TFC,由TFC拉取绑定的GitLab仓库代码完成执行,执行日志会同步输出到流水线中。
  • 权限要求:你使用的TFC访问令牌需要拥有对应工作空间的计划、应用权限。

如果不想在流水线中安装Terraform客户端,也可以直接调用TFC的Run API触发任务,仅需要在流水线中发送POST请求到TFC的运行接口,指定工作空间ID即可完成触发。

方案2:流水线中拉取GitLab基础设施仓库代码执行

如果需要在BitBucket Runner本地执行Terraform任务,可以在流水线步骤中添加GitLab仓库拉取逻辑:

  • 在流水线中配置GitLab访问凭据,将基础设施代码仓库克隆到当前执行环境
  • 执行Terraform命令时通过-chdir参数指定配置文件路径,或者切换到仓库目录再执行命令
  • 该方案执行逻辑完全在BitBucket侧完成,和TFC UI触发的执行环境可能存在差异,仅适合特殊场景使用。
注意事项
  • 开启远程执行模式后,Terraform变量优先读取TFC工作空间中配置的变量,如需传递流水线中的环境变量到TFC执行环境,需要为变量添加TF_VAR_前缀
  • 如需在流水线中自动执行apply操作,可在terraform apply命令后添加-auto-approve参数,远程执行模式同样支持该参数

内容的提问来源于stack exchange,提问作者James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 14:24:01