Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何在terraform中实现多个gcs后端_Google Cloud Platform_Terraform - Fatal编程技术网

Google cloud platform 如何在terraform中实现多个gcs后端

Google cloud platform 如何在terraform中实现多个gcs后端,google-cloud-platform,terraform,Google Cloud Platform,Terraform,在我们团队内部。我们都有自己的开发项目,然后我们有一个测试和生产环境 我们目前正在从deployment manager和gcloud cli进行迁移。进入地形。然而,我们还没有找到在gcs后端中创建独立后端的方法。我们注意到远程后端支持设置专用工作区,但我们无法在gcs中设置类似的工作区 是否可以声明terraform资源A将有一个可配置的后端,我们可以根据项目进行调整,或者工作区是否可以进行同等调整? 所以我们可以使用tfvars和vars参数在项目之间切换 每次我们试图通过vars配置后端

在我们团队内部。我们都有自己的开发项目,然后我们有一个测试和生产环境

我们目前正在从deployment manager和gcloud cli进行迁移。进入地形。然而,我们还没有找到在gcs后端中创建独立后端的方法。我们注意到远程后端支持设置专用工作区,但我们无法在gcs中设置类似的工作区

是否可以声明terraform资源A将有一个可配置的后端,我们可以根据项目进行调整,或者工作区是否可以进行同等调整? 所以我们可以使用tfvars和vars参数在项目之间切换

每次我们试图通过vars配置后端时,我们都会在的
terraforminit
中得到错误

Error: Variables not allowed
如何为每个项目创建独立的后端


或者,如果这不可能,我们如何保证多个项目的共享后端状态不会发生冲突,从而导致状态不正确?

当您运行
terraform init
命令时,必须知道您的后端,我指的是您的后端存储桶

如果不想使用workspace,则必须在运行init之前自定义后端值。我们正在努力实现这一目标。根据环境,使用正确的后端名称创建backend.tf文件。并运行init命令


编辑1

我们有一段脚本(sh),它在触发terraform命令之前创建后端。(这是我们的Make文件)


cat>$TF\u export\u dir/backend.TF运行
terraform init
命令时必须知道您的后端,我指的是您的后端存储桶

如果不想使用workspace,则必须在运行init之前自定义后端值。我们正在努力实现这一目标。根据环境,使用正确的后端名称创建backend.tf文件。并运行init命令


编辑1

我们有一段脚本(sh),它在触发terraform命令之前创建后端。(这是我们的Make文件)


cat>$TF\u export\u dir/backend.TF啊我担心我需要一些脚本才能实现这一点。老实说,这有点烦人。你能分享一下你的make脚本是如何工作的吗?我们尝试将共享项目用于后端,并使用工作区。但在此之前,我对你使用make的建议很感兴趣。如果你能分享,那就太好了。啊,我担心我需要一些脚本来实现这一点。老实说,这有点烦人。你能分享一下你的make脚本是如何工作的吗?我们尝试将共享项目用于后端,并使用工作区。但在此之前,我对你使用make的建议很感兴趣。如果你能分享,那就太好了。
cat > $TF_export_dir/backend.tf << EOF
terraform {
    backend "gcs" {
        bucket = "$TF_subsidiary-$TF_environment-$TF_deployed_application_code-gcs-tfstatebackend"
        prefix = "terraform/state"
    }
}
EOF