GCP,将terraform安装在GCP项目A“测试实例”实例上,使用terraform如何在Project-B上部署实例?
我能够使用gcloud命令执行此操作,有人知道该怎么做吗?
private defineBackImage(someArg) {
if (stuff) {
this.backgroundImageString = url1;
} else {
this.backgroundImageString = url2;
}
}
答案 0 :(得分:1)
您面临的问题与访问控制有关。
您正在尝试从Project-A
中的VM运行terraform,并且terraform代码想在Project-B
中创建新的VM(或其他资源)。
默认情况下,附加到Project-A
VM的服务帐户没有足够的权限在Project-B
中创建任何资源。为了解决这个问题,您可以在文件夹级别(或组织级别)创建一个服务帐户,该帐户有权在所需项目中创建VM,然后将该服务帐户附加到运行terraform的VM。
希望这会有所帮助。
答案 1 :(得分:0)
我建议您使用Terraform Variables,同时使用.tfvars
个文件和多个Terraform Workspaces。然后,您可以在工作空间之间切换,并分别为每个特定项目应用tfvar。
例如
# variables.tf
variable "project_id" {
type = string
}
然后在terraform配置中使用变量:
# main.tf
provider "google" {
project = var.project_id
region = "us-central1"
zone = "us-central1-c"
}
然后,tfvars将如下所示:
# vars/dev.tfvars
project_id = "my-dev-project"
然后可以像通常那样使用计划/应用程序在工作区中完全调用(请参阅文档):
terraform workspace select dev
terraform plan -var-file vars/dev.tfvars