使用来自 GCP 市场的 terraform 创建实例
Posted
技术标签:
【中文标题】使用来自 GCP 市场的 terraform 创建实例【英文标题】:Create instance using terrafrom from GCP marketplace 【发布时间】:2020-06-16 01:04:27 【问题描述】:我正在尝试创建terraform script 以从市场推出fastai instance。
我将图像名称添加为,
boot_disk
initialize_params
image = "<image name>"
当我添加时
click-to-deploy-images/deeplearning
来自网址
https://console.cloud.google.com/marketplace/details/click-to-deploy-images/deeplearning
给出错误,
Error: Error resolving image name 'click-to-deploy-images/deeplearning': Could not find image or family click-to-deploy-images/deeplearning
on fastai.tf line 13, in resource "google_compute_instance" "default":
13: resource "google_compute_instance" "default"
如果我使用
debian-cloud/debian-9
来自网址
https://console.cloud.google.com/marketplace/details/debian-cloud/debian-stretch?project=<>
正在工作。
我们可以通过 terraform 部署 fastai 镜像吗?
【问题讨论】:
【参考方案1】:我从您共享的深度学习市场 VM 实例进行了部署,并查看了源图像 [1],您应该能够使用我提供的 URL 来使用 Terraform 进行部署。我还注意到一个警告图像,指出该图像已被弃用,并且有这个新版本[2]。
希望这会有所帮助!
[1]来源图片:https://www.googleapis.com/compute/v1/projects/click-to-deploy-images/global/images/tf2-2-1-cu101-20200109
[2]https://www.googleapis.com/compute/v1/projects/click-to-deploy-images/global/images/tf2-2-1-cu101-20200124
【讨论】:
嗨。单击这些链接后,我得到 401。如何解决 401 错误。?有什么想法吗?【参考方案2】:在这种特殊情况下,名称为“deeplearning-platform-release/pytorch-latest-gpu”,
boot_disk
initialize_params
image = "deeplearning-platform-release/pytorch-latest-gpu"
...
现在我可以创建实例了。
【讨论】:
【参考方案3】:致像我这样的其他新手:
显然,GCP Marketplace 正在使用Deployment Manager,这是 google 自己的声明性工具来管理基础架构。 (我认为module
s 是terraform
中最接近它的抽象。)
因此,标题中的问题没有简单/单一的答案。
在我看来 - 如果您从头开始和/或有能力付出时间 - 最好使用 terraform
模块而不是 GCP 市场解决方案 - 如果存在的话。
但是,如果您正在导入现有的基础设施并且您不能立即替换它(或者没有这样的模块),那么更改是好的。
在这种情况下,我认为您能做的最好的事情就是转到 Deployment Manager in google console 并打开您需要导入的特定部署。
此时您可以看到哪些资源构成了部署。大概会有vm template
(s)、vm
(s)、firewall rule
(s)等等……
点击vm instance
和template
会显示很多有用的细节。
最重要的是你可以推断出使用了什么图像。
例如: 就我而言,它显示:
sourceImage https://www.googleapis.com/compute/v1/projects/open***-access-server-200800/global/images/aspub275
由此我可以定义(基于an answer 问题#7319)
data "google_compute_image" "open***_server"
name = "aspub275"
project = "open***-access-server-200800"
我可以反过来在google_compute_instance
资源中使用它。
这将强制重新创建虚拟机。
【讨论】:
另外,还有registry.terraform.io/providers/hashicorp/google/latest/docs/…,但以一个巨大的警告标志开头...以上是关于使用来自 GCP 市场的 terraform 创建实例的主要内容,如果未能解决你的问题,请参考以下文章
使用 Terraform 创建 GCP 自定义 IAM 角色
使用 Terraformer\Terraform 克隆 GCP 项目