Terraform/GCP:SSH-Keys未被添加到METDATA中



我正在尝试使用Terraform的项目级别将SSH-Keys添加到我的Google Cloud Project:

resource "google_compute_project_metadata_item" "oslogin" {
  project = "${google_project_services.myproject.project}"
  key     = "enable-oslogin"
  value   = "false"
}
resource "google_compute_project_metadata_item" "block-project-ssh-keys" {
  project = "${google_project_services.myproject.project}"
  key     = "block-project-ssh-keys"
  value   = "false"
}
resource "google_compute_project_metadata_item" "ssh-keys" {
  key   = "ssh-keys"
  value = "user:ssh-rsa myverylongpublickeythatireplacewithtexthereforobviousreasons user@computer.local"
  depends_on = [
    "google_project_services.myproject",
  ]
}

我尝试了2个元数据标志Oslogin和Block-project-ssh-Keys的所有类型组合,它们始终无问题。但是SSH键从未出现在GCPS Web GUI中,更不用说授权_Keys文件了。我什至尝试添加deweds_on,以确保在添加键之前已经存在该项目,但这也无济于事。

但是,Terraform说:

google_compute_project_metadata_item.ssh-keys: Creation complete after 8s (ID: ssh-keys)

在Web GUI上手动添加完全相同的密钥正常。在这一点上,我相信我已经尝试了所有内容,请阅读所有首页Google结果" Terraform GCP添加SSH密钥"和类似的查询...我处于智慧。

问题是SSH键正在添加到另一个项目中。我从Google的GCP/Terraform的教程开始。首先使用 gcloud 工具创建一个通用项目。然后继续使用该通用项目创建帐户。这是必要的,因为您需要用户对其API运行Terraform。然后,他们每次应用创建一个新的 new 项目,为这些用户提供促进。最初创建后,使用GCLOUD创建的通用项目没有被触摸。如果您从 google_compute_project_metadata_item.ssh -keys 资源中省略了"项目"参数,它使用了通用项目并在此处添加了SSH键。

解决方案:明确将 project 参数添加到元数据资源项目中,以确保将其添加到正确的项目

最新更新