我想将一个帐户中创建的机器映像导入到另一个谷歌云平台帐户中。你能帮我吗?
有一种方法可以使用来自不同项目的机器映像来创建实例和新机器映像。
我在自己的项目中重现了这个场景,并且我能够使用来自不同项目的机器映像来创建我的实例,我遵循了下一个文档
我已经在我的
my-machine-image
上创建了一个机器映像 machine-image-project-origin
,并且我向新项目 [email protected]
下的服务帐户 vm-project-destination
授予了权限。
值得一提的是,我的
machine-image-project-origin
和我的vm-project-destination
属于不同的组织,并且是用不同的帐户创建的。
要使用 gcloud 命令行工具授予对存储在项目
my-machine-image
中的 machine-image-project-origin
的访问权限:
gcloud beta compute machine-images add-iam-policy-binding my-machine-image \
--project=machine-image-project-origin \
--member='serviceAccount:[email protected]' \
--role='roles/compute.admin'
您将获得类似:
Updated IAM policy for machine image [my-machine-image].
bindings:
- members:
- serviceAccount:[email protected]
role: roles/compute.admin
etag: BwXtXMjY8wZ=
version: 1
然后使用此图像创建一个新实例
my-instance
,在我的新项目中vm-project-destination
:
gcloud beta compute instances create my-instance \
--project=vm-project-destination \
--zone us-east1-b \
--source-machine-image projects/machine-image-project-origin/global/machineImages/machine-image-to-share \
--service-account [email protected]
你会得到类似的东西:
Created [https://www.googleapis.com/compute/beta/projects/vm-project-destination/zones/us-east1-b/instances/my-instance].
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
my-instance us-east1-b n1-standard-1 10.122.0.2 35.222.19.36 RUNNING
然后,如果需要,您可以基于我们已经创建的新实例创建一个新的机器映像,该映像基本上是原始项目中创建的机器映像的副本。
另一方面,我建议您查看以下有关提问的指南:如何提出一个好问题?和如何创建最小、完整且可验证的示例,以便提供更好的背景信息你正在做什么以及你想要实现什么。
我希望您发现这些信息有用。
首先查看这些文档:这里
这应该让您深入了解跨帐户共享图像。
一旦您正确共享了对其他帐户图像的访问权限。我相信你可以做这样的事情:
gcloud compute --project=destinationproject images create dest-image --source-image=src-image --source-image-project=sourceproject
我收到此错误
错误:(gcloud.compute.disks.create)缺少必需参数 [--replica-zones]:创建区域磁盘需要 --replica-zones