【问题标题】:Terraform : Tagging ALL google compute INSTANCES at once using TerraformTerraform:使用 Terraform 一次标记所有谷歌计算实例
【发布时间】:2020-06-20 10:25:34
【问题描述】:

我有一个现有项目,该项目中正在运行实例。我已经使用 Terraform 和凭据文件在项目中进行了身份验证。我想通过输入项目 ID 来获取现有资源。

provider "google" {
  credentials = "${file("${var.path}/terraform-ma.json")}"

  project = "terraform-ma-2020"
  region  = "us-central1"
  zone    = "us-central1-b"
}



data "google_project" "project" {
}

output "project_id" {
  value = data.google_project.project.project_id

}

【问题讨论】:

  • AWS 提供商如何为您做到这一点?您将如何与 AWS 提供商合作来实现这一目标?您能否编辑您的问题以将其作为minimal reproducible example 包含在内,并解释这对 GCP 提供商不起作用?

标签: terraform tagging terraform-provider-gcp infrastructure-as-code


【解决方案1】:

您可以使用https://www.terraform.io/docs/import/index.html 中的信息将现有 GCP 资源导入 Terraform 状态文件

【讨论】:

  • 是否需要使用 Terraform import 命令导入所有资源? Terraform 说,一旦您可以访问任何内容,您就可以获取数据。我唯一的困惑是使用 Terraform 通过凭证文件对项目进行身份验证,我们确实可以访问该项目。但是为了获取数据,我们的 tfstate 文件应该使用当前/现有的基础设施权限进行更新,并且数据块可以从 tfstate 文件中获取数据。这就是为什么导入很重要???
  • 我不确定我是否理解您的问题。您可以使用 Terraform 从 .tf 文件创建资源。导入现有资源只会创建 .tfstate 文件,不会创建 .tfstate 文件。 .tf 文件。所以你必须使用状态文件来创建配置文件。
  • 我会尝试重新构建我的问题。简而言之,如果基础设施不是通过 Terraform 创建的,那么 IMPORT 是绝对必要的,以便管理和更新现有的基础设施,对吧?数据源块用于从您有权访问的资源中获取信息。如果我可以通过服务密钥帐户凭据访问该项目。这是否意味着我们可以在不使用 IMPORT 命令的情况下检索该项目下的资源信息?或者为了使数据源命令正常工作,您需要使 .tfstate 文件与您现有的基础设施保持同步?
  • 您可以导入手动创建的现有基础架构:是的。但如果我没记错的话,并非所有资源类型都支持导入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-11
  • 2019-07-31
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
相关资源
最近更新 更多