How to recreate a google compute engine vm from one project in another project

google-cloud-platformgoogle-compute-engine

I have created a VM in project A in GCE. I want to create a new instance based on this VM in another project B.

I reckon I can spawn a new instance based on the a disk snapshot. However I cannot find any option to transfer such a snapshot across project.

My questions are:

1) how can I transfer a disk snapshot across projects in Google Cloud Platform projects?

2) Is there a better way to achieve this other than using a docker image?

Best Answer

Since I cannot turn off the source VM because it is currently in use in a production environment, I have to use the following steps to create a mirror VM in another project:

1) Create a snapshot of the boot disk of the source VM

2) Create a disk based on this snapshot in the target project

 gcloud compute disks create vm-prod-disk --source-snapshot \
 https://www.googleapis.com/compute/v1/projects/<source-\
 project>/global/snapshots/<source-vm-snapshot> --project target-project

3) Create a VM based on the new disk from step 2

gcloud compute instances create vm-prod-duplicate \
--project target-project --disk name=vm-prod-disk,boot=yes
Related Topic