在哪里可以获得实际Compute Engine映像名称的列表?

时间:2019-02-20 04:24:12

标签: google-cloud-platform google-compute-engine terraform

我正在尝试使用Terraform首次配置Compute Engine实例。

所需的参数之一是所使用的图像名称。通过控制台手动设置实例时,我可以看到图像列表,但是这些是图像的人类可读标签(例如“ CentOS 6”,“ Ubuntu 16.04 LTS”等)。获得在“ resource”指令的“ boot_disk”部分中将使用的实际Compute Engine映像名称的列表。

resource "google_compute_instance" "default" {
  name         = "Test_CE"
  machine_type = "n1-standard-1"
  zone         = "us-east1-b"

  boot_disk {
    initialize_params {
      image = "<actual image name goes here>"
    }
  }
}

2 个答案:

答案 0 :(得分:5)

CLI gcloud将列出可用的图像。

gcloud compute images list

Documentation: gcloud compute images list

以下是返回列表的第一部分。将NAME下的字符串用于Terraform。

NAME                                                  PROJECT            FAMILY                            DEPRECATED  STATUS
centos-6-v20190213                                    centos-cloud       centos-6                                      READY
centos-7-v20190213                                    centos-cloud       centos-7                                      READY
coreos-alpha-2051-0-0-v20190211                       coreos-cloud       coreos-alpha                                  READY
coreos-beta-2023-3-0-v20190219                        coreos-cloud       coreos-beta                                   READY
coreos-stable-1967-6-0-v20190213                      coreos-cloud       coreos-stable                                 READY
cos-69-10895-138-0                                    cos-cloud          cos-69-lts                                    READY
cos-beta-73-11647-35-0                                cos-cloud          cos-beta                                      READY
cos-dev-74-11758-0-0                                  cos-cloud          cos-dev                                       READY
cos-stable-72-11316-136-0                             cos-cloud          cos-stable                                    READY
debian-9-stretch-v20190213                            debian-cloud       debian-9                                      READY

答案 1 :(得分:1)

您可能会发现使用google_compute_image data source会更容易,因此您可以在那里使用它的可读名称来引用它,而只需在self_link资源中使用google_compute_instance输出即可。

google_compute_image数据源文档提供了一个很好的例子:

data "google_compute_image" "my_image" {
  name    = "debian-9"
  project = "debian-cloud"
}

resource "google_compute_instance" "default" {
  # ...

  boot_disk {
    initialize_params {
      image = "${data.google_compute_image.my_image.self_link}"
    }
  }
}