我正在尝试使用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>"
}
}
}
答案 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}"
}
}
}