我正在尝试用terraform在项目级别将ssh键添加到我的Google项目中:
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和块项目-ssh-键,这总是没有问题的设置。但是ssh键从未出现在GCPs中,更不用说authorized_keys文件了。我甚至尝试添加depends_on,以确保在添加键之前项目是存在的,但这也没有帮助。
然而,Terraform说:
google_compute_project_metadata_item.ssh-keys: Creation complete after 8s (ID: ssh-keys)在web上手动添加完全相同的键可以很好地工作。在这一点上,我相信我已经尝试了一切,阅读所有的第一页谷歌的结果到'terraform gcp添加ssh键‘和类似的查询.我快疯了。
发布于 2019-05-27 11:29:43
问题是ssh键被添加到另一个项目中。我从谷歌的GCP/Terraform教程开始。这首先使用gcloud工具创建了一个通用项目。然后继续使用该通用项目创建帐户。这是必要的,因为您需要一个用户根据他们的API运行terraform。然后,他们创建一个新的项目,以方便这些用户与地形,每次你申请。使用gcloud创建的通用项目在初始创建后不会被触及。如果您省略了google_compute_ project _metadata_ITEME.ssh-键资源中的"project“参数,它将使用泛型项目并在其中添加ssh键--至少在我的示例中是这样。
解决方案:显式地将项目参数添加到元数据资源项中,以确保将其添加到正确的项目中
https://stackoverflow.com/questions/56294127
复制相似问题