GCP Cloud Build and Terraform integration



我正在使用Cloud Build运行Terraform

step {
name = "hashicorp/terraform:1.0.1"
args = ["init"]
dir  = env/dev
}
step {
name = "hashicorp/terraform:1.0.1"
args = ["plan"]
dir  = env/dev
}
step {
name = "hashicorp/terraform:1.0.1"
args = ["apply", "-auto-approve"]
dir  = env/dev
}

在我的terraform代码中有一个local-exec命令,它运行一些Linux命令和一个gcloud命令。

resource "null_resource" "gcloud" {
provisioner "local-exec" {
command = <<EOT
.
some Linux commads
.
gcloud pubsub topics list 
EOT
}
}

在Terraform应用之后,它给了我:

exit status 127. Output: /bin/sh: gcloud: not found
为了解决这个问题,我使用了gcloud模块:
module "gcloud" {
source  = "terraform-google-modules/gcloud/google"
version = "3.1.0"
create_cmd_endpoint = "gcloud"
create_cmd_body        = "version"
destroy_cmd_body      = "gcloud"
destroy_cmd_body       = "version"
}

现在有两个错误:

[7:47 p.m., 2022-11-13] Milad: exit status 127. Output: /bin/sh: curl: not found
[7:47 p.m., 2022-11-13] Milad: exit status 127. Output: /bin/sh: gcloud: not found

如有任何帮助,不胜感激。

您上面提到的错误似乎是由于" gcloud "模块没有被正确合并,因此引用子命令的命令导致这种错误。" gcloud "模块的执行应该确保" gcloud "在安装过程中被解压缩并按正确的顺序进行安装。
我建议您尝试最新版本的terraform注册表,它似乎解决了这个问题。
还可以查看这些类似的例子:

  • terraform中的多个命令
  • 在terraform本地执行序列化shell命令

相关内容

  • 没有找到相关文章

最新更新