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.
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses yang digunakan untuk memverifikasi identitas Anda agar dapat mengakses Google Cloud layanan dan API.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna 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 ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk menyalin VM antar-project. Untuk melihat izin yang benar-benar diperlukan, luaskan 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
pada snapshot -
Untuk menggunakan template instance guna membuat VM:
compute.instanceTemplates.useReadOnly
pada template instance -
Untuk menetapkan jaringan lama ke VM:
compute.networks.use
pada project -
Untuk menentukan alamat IP statis untuk VM:
compute.addresses.use
pada project -
Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama:
compute.networks.useExternalIp
di project -
Untuk menentukan subnet bagi VM Anda:
compute.subnetworks.use
di project atau di subnet yang dipilih -
Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC:
compute.subnetworks.useExternalIp
di project atau di subnet yang dipilih -
Untuk menetapkan metadata instance VM untuk VM:
compute.instances.setMetadata
pada project -
Untuk menetapkan tag untuk VM:
compute.instances.setTags
di VM -
Untuk menetapkan label untuk 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
pada 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 mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
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_FLAG \ --subnet SUBNET
Ganti kode berikut:
VM_NAME
: nama VMIMAGE_PROJECT
: ID project Google Cloud yang berisi imageIMAGE_FLAG
: tentukan salah satu dari hal berikut:- Gunakan flag
--image IMAGE_NAME
untuk menentukan image kustom.Misalnya,
--image my-debian-image-v2
. - Jika Anda membuat image kustom sebagai bagian dari kelompok image kustom, gunakan flag
--image-family IMAGE_FAMILY_NAME
untuk 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.
- Gunakan flag
SUBNET
: jika subnet dan instance berada dalam project yang sama, gantiSUBNET
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
: project ID project host VPC BersamaREGION
: region subnetSUBNET_NAME
: nama subnet.
Region subnet untuk jaringan VPC Bersama juga harus cocok dengan region yang berisi instance.
Langkah berikutnya
- Sesuaikan jaringan VPC project tujuan.