Terraform / GCP: ssh-ключи не добавляются в метаданные - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь добавить ssh-ключи в свой проект Google Cloud на уровне проекта с помощью terraform:

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",
  ]
}

Я перепробовал все типы комбинаций из двух флагов метаданных oslogin и block-project-ssh-ключи, которые всегда устанавливаются без проблем.Но ssh-ключи никогда не появляются в веб-интерфейсе GCP, не говоря уже о файле author_keys.Я даже пытался добавить зависящий_он, чтобы убедиться, что проект существует до добавления ключей, но это тоже не помогло.

Тем не менее, Terraform говорит:

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

Добавление точно такого же ключа вручную в веб-интерфейс работает нормально.На данный момент, мне кажется, я перепробовал все, прочитал все результаты Google на первой странице, чтобы узнать «terraform gcp add ssh key» и похожие запросы ... Я в своем уме.

1 Ответ

0 голосов
/ 27 мая 2019

Проблема заключалась в том, что ключ ssh добавлялся в другой проект. Я начал с учебника Google по GCP / Terraform . Сначала создается общий проект с помощью инструмента gcloud . Затем приступает к созданию учетных записей с использованием этого общего проекта. Это необходимо, потому что вам нужно, чтобы пользователь запускал terraform для своего API. Затем они создают новый проект, помогающий этим пользователям использовать terraform каждый раз, когда вы применяете . Общий проект, созданный с помощью gcloud, не затрагивается после первоначального создания. Если вы пропустите параметр "project" из ресурса google_compute_project_metadata_item.ssh-keys , он будет использовать общий проект и добавит туда ключи ssh - по крайней мере, в моем случае.

Решение: явно добавьте параметр project к элементу ресурса метаданных, чтобы убедиться, что он добавляется в нужный проект

...