Dokumen ini menjelaskan cara menyalin VM Anda ke project yang berbeda.
Sebelum memulai
- Tinjau Praktik terbaik untuk snapshot persistent disk dan siapkan boot disk untuk snapshot.
-
Siapkan autentikasi, jika Anda belum melakukannya.
Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan region dan zona default.
-
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk menyalin VM antar-project,
minta administrator untuk memberi Anda peran IAM
Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1
) di project.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk menyalin VM antar-project. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menyalin VM antar-project:
-
compute.instances.create
pada project -
Untuk menggunakan image kustom guna membuat VM:
compute.images.useReadOnly
pada image -
Untuk menggunakan snapshot guna membuat VM:
compute.snapshots.useReadOnly
di snapshot -
Untuk menggunakan template instance untuk membuat VM:
compute.instanceTemplates.useReadOnly
di template instance -
Untuk menetapkan jaringan lama ke VM:
compute.networks.use
pada project -
Untuk menentukan alamat IP statis untuk VM:
compute.addresses.use
di project -
Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama:
compute.networks.useExternalIp
di project -
Untuk menentukan subnet untuk VM Anda:
compute.subnetworks.use
pada project atau subnet yang dipilih -
Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC:
compute.subnetworks.useExternalIp
pada project atau di subnet yang dipilih -
Untuk menetapkan metadata instance VM untuk VM:
compute.instances.setMetadata
di project -
Untuk menetapkan tag untuk VM:
compute.instances.setTags
di VM -
Untuk menetapkan label VM:
compute.instances.setLabels
di VM -
Untuk menetapkan akun layanan yang akan digunakan VM:
compute.instances.setServiceAccount
di VM -
Untuk membuat disk baru bagi VM:
compute.disks.create
di project -
Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis:
compute.disks.use
pada disk -
Untuk memasang disk yang ada dalam mode hanya baca:
compute.disks.useReadOnly
pada disk
Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.
Menyalin VM ke project lain
Di project sumber, buat snapshot boot disk VM menggunakan salah satu perintah berikut:
Boot disk zona
Jika VM Anda memiliki boot disk zona, buat snapshot menggunakan perintah berikut:
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk SOURCE_DISK \ --snapshot-type SNAPSHOT_TYPE \ --source-disk-zone SOURCE_DISK_ZONE
Ganti kode berikut:
- SNAPSHOT_NAME: Nama untuk snapshot.
- SOURCE_DISK: Nama volume Persistent Disk zona tempat Anda ingin membuat snapshot.
- SNAPSHOT_TYPE: Jenis snapshot, baik STANDARD atau ARCHIVE. Jika jenis snapshot tidak ditentukan, snapshot STANDARD akan dibuat. Pilih Archive untuk retensi data yang lebih hemat biaya.
- SOURCE_DISK_ZONE: Zona volume Persistent Disk zona tempat Anda ingin membuat snapshot.
Boot disk regional
Jika VM Anda memiliki boot disk regional, buat snapshot menggunakan perintah berikut:
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk SOURCE_DISK \ --source-disk-region=SOURCE_DISK_REGION \ --snapshot-type=SNAPSHOT_TYPE
Ganti kode berikut:
- SNAPSHOT_NAME: Nama untuk snapshot.
- SOURCE_DISK: Nama volume Persistent Disk regional tempat Anda ingin membuat snapshot.
- SOURCE_DISK_REGION: Region tempat volume Persistent Disk regional tempat Anda ingin membuat snapshot.
- SNAPSHOT_TYPE: Jenis snapshot, baik STANDARD atau ARCHIVE. Jika jenis snapshot tidak ditentukan, snapshot STANDARD akan dibuat.
Buat image kustom dari snapshot menggunakan perintah berikut:
gcloud compute images create IMAGE_NAME \ --source-snapshot=SOURCE_SNAPSHOT \ [--storage-location=LOCATION]
Ganti kode berikut:
IMAGE_NAME
: nama untuk image baruSOURCE_SNAPSHOT
: snapshot tempat Anda ingin membuat imageLOCATION
: Opsional: tanda yang memungkinkan Anda menentukan region atau multi-region tempat image Anda disimpan. Misalnya, tentukanus
untuk menyimpan image di multi-regionus
, atauus-central1
untuk menyimpannya di regionus-central1
. Jika Anda tidak menentukan pilihan, Compute Engine akan menyimpan image dalam multi-region yang paling dekat dengan lokasi sumber image Anda.
Opsional: Bagikan image kustom dengan pengguna yang membuat VM di project tujuan. Untuk mengetahui informasi selengkapnya tentang berbagi image kustom, lihat Membagikan image kustom dalam organisasi.
Di project tujuan Anda, buat VM dari image kustom menggunakan perintah berikut:
gcloud compute instances create VM_NAME \ --image-project IMAGE_PROJECT \ [--image IMAGE | --image-family IMAGE_FAMILY] --subnet SUBNET
Ganti kode berikut:
VM_NAME
: nama VMIMAGE_PROJECT
: nama project yang berisi imageIMAGE
atauIMAGE_FAMILY
: tentukan salah satu dari hal berikut:IMAGE
: nama image kustom AndaMisalnya,
--image=my-debian-image-v2
.IMAGE_FAMILY
: jika Anda membuat image kustom sebagai bagian dari kelompok image kustom, menentukan kelompok image kustom tersebut.Ini akan membuat VM dari OS image dan versi OS terbaru yang masih digunakan dalam kelompok image kustom Anda. Misalnya, jika Anda menentukan
--image-family=my-debian-family
, Compute Engine akan membuat VM dari OS image terbaru dalam kelompok imagemy-debian-family
kustom Anda.
SUBNET
: Jika subnet dan instance berada dalam project yang sama, ganti SUBNET dengan nama subnet yang berada di region yang sama dengan instance.Untuk menentukan subnet di jaringan VPC Bersama, ganti
SUBNET
dengan string bentuk:projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
Ganti kode berikut:
HOST_PROJECT_ID
adalah ID project dari project host VPC BersamaREGION
adalah region subnetSUBNET_NAME
adalah nama subnet
Region subnet untuk jaringan VPC bersama juga harus cocok dengan region yang berisi instance.