Menyalin VM antar-project

Dokumen ini menjelaskan cara menyalin VM Anda ke project yang berbeda.

Sebelum memulai

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan 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 di 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 bagi VM: compute.instances.setMetadata di project
  • Untuk menyetel tag untuk VM: compute.instances.setTags di VM
  • Untuk menetapkan label bagi VM: compute.instances.setLabels di VM
  • Untuk menyetel akun layanan yang akan digunakan VM: compute.instances.setServiceAccount di VM
  • Untuk membuat disk baru untuk 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

  1. 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.

  2. 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 baru
    • SOURCE_SNAPSHOT: snapshot tempat Anda ingin membuat image
    • LOCATION: Opsional: tanda yang memungkinkan Anda menentukan region atau multi-region tempat image Anda disimpan. Misalnya, tentukan us untuk menyimpan image di multi-region us, atau us-central1 untuk menyimpannya di region us-central1. Jika Anda tidak menentukan pilihan, Compute Engine akan menyimpan image dalam multi-region yang paling dekat dengan lokasi sumber image Anda.
  3. 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.

  4. 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 VM
    • IMAGE_PROJECT: ID Trusted Cloud project yang berisi gambar
    • IMAGE_FLAG: tentukan salah satu dari berikut ini:
      • 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 image my-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: ID project host VPC Bersama
      • REGION: region subnet
      • SUBNET_NAME: nama subnet.

      Region subnet untuk jaringan VPC Bersama juga harus cocok dengan region yang berisi instance.

Langkah berikutnya