Mengimpor perangkat virtual


Perangkat virtual adalah paket yang berisi disk image dan konfigurasi hardware untuk instance mesin virtual (VM).

Format yang banyak digunakan dan populer untuk perangkat virtual adalah format OVF. Saat mengemas perangkat virtual dalam format OVF, Anda akan menghasilkan paket OVF. Paket OVF adalah folder yang berisi file deskriptor .ovf dan kumpulan resource lainnya, seperti disk. Jika paket OVF diarsipkan ke dalam satu file, paket tersebut disebut sebagai file OVA.

Anda dapat mengimpor VM yang memiliki format OVF ke Compute Engine, baik saat VM berada dalam paket OVF atau dalam file tunggal OVA. Untuk memeriksa apakah menggunakan perangkat virtual adalah pilihan terbaik untuk kasus penggunaan Anda, baca Memilih jalur migrasi.

Saat Anda mengimpor perangkat virtual, proses impor akan menggunakan informasi yang disimpan dalam file deskripsi untuk membuat dan memulai VM di Compute Engine.

Di Compute Engine, Anda dapat mengimpor file OVA atau OVF sebagai berikut:

Sebelum memulai

  • Jika project tempat Anda ingin mengimpor perangkat virtual memiliki kebijakan image tepercaya yang telah ditentukan, tambahkan projects/compute-image-import dan projects/compute-image-tools ke daftar yang diizinkan penayang.
  • Jika Anda mengimpor perangkat virtual dari project lain, lihat Mengimpor lintas project.
  • Untuk mengetahui cara memenuhi persyaratan sebelum mengimpor image, lihat Prasyarat untuk mengimpor dan mengekspor image VM.
  • 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.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Persyaratan

Bagian ini mencantumkan persyaratan untuk mengimpor perangkat virtual ke Compute Engine.

Persyaratan VM sumber

Persyaratan berikut harus dipenuhi oleh VM yang digunakan untuk membuat file OVF:

  • Disk virtual harus dalam format VMDK atau VHD.
  • Disk virtual tidak boleh dienkripsi.

    Untuk memverifikasi bahwa VM Anda memenuhi persyaratan, Anda dapat menjalankan fitur precheck.

Sistem operasi untuk VM sumber harus memenuhi persyaratan berikut:

  • Untuk semua sistem operasi Windows, PowerShell versi 3 atau yang lebih baru harus diinstal. Versi PowerShell yang lebih lama dari 3.0 dapat menyebabkan masalah pada skrip startup dan shutdown yang digunakan selama proses impor.
  • Untuk semua distribusi Linux, boot disk harus memenuhi persyaratan berikut:

    • Boot disk harus sudah menginstal GRUB.
    • Boot disk tidak boleh mencakup beberapa disk fisik. Disk yang dipartisi menggunakan Logical Volume Manager (LVM) tidak didukung. Jika disk mencakup beberapa disk fisik, VM yang dibuat dari file OVF mungkin tidak dapat melakukan booting di Compute Engine.

Persyaratan file OVF

Persyaratan berikut harus dipenuhi oleh file OVF:

  • File OVF harus menyediakan portabilitas Level 1 seperti yang dijelaskan dalam dokumen spesifikasi OVF. Perangkat virtual yang memenuhi portabilitas Level 2 dapat diimpor, tetapi ekstensi kustom apa pun seperti detail khusus hypervisor sumber akan diabaikan selama proses impor.
  • File OVF hanya boleh berisi satu VM. Jika ada lebih dari satu VM, hanya VM pertama yang akan diimpor.
  • Disk pertama dalam file OVF harus dapat di-booting.

Izin

Untuk memungkinkan pengalaman yang lancar saat mengimpor image, pastikan Anda telah memberikan peran IAM yang diperlukan ke akun Anda, akun layanan Cloud Build, dan akun layanan Compute Engine. Untuk mengetahui informasi selengkapnya, lihat Memberikan peran IAM yang diperlukan.

Konfigurasi yang diimpor oleh alat impor

Standar OVF menentukan proses untuk memaketkan perangkat virtual dengan cara yang tidak bergantung pada penyedia virtualisasi. Paket perangkat virtual OVF berisi satu file deskripsi .ovf dan sekumpulan resource lain seperti disk virtual.

Saat Anda mengimpor perangkat virtual OVF ke Compute Engine, konfigurasi berikut dari file deskripsi akan diproses dan diimpor:

  • Disk Virtual. Informasi yang diambil dari elemen DiskSection paket OVF.
  • CPU dan Memori. Diambil dari ResourceAllocationSection paket OVF.

    Jika konfigurasi CPU atau memori berada di luar batas rentang yang didukung di Compute Engine, proses impor akan menetapkan nilai ke nilai maksimum yang didukung di Compute Engine.

  • Boot Disk. Detail yang diambil dari elemen BootDeviceSection paket OVF.

  • Guest OS. Detail yang diambil dari elemen OperatingSystemSection paket OVF.

    Informasi guest OS digunakan untuk menginstal paket lingkungan tamu dan driver yang benar pada instance yang diimpor. Jika informasi guest OS yang ditemukan di OVF salah, impor akan gagal. Anda dapat menggunakan penanda --os untuk mengganti informasi guest OS.

VM yang diimpor selalu dibuat dengan satu adaptor jaringan dengan alamat IP eksternal. Satu adaptor jaringan ini akan digunakan, apa pun konfigurasi jaringan yang ditentukan dalam file OVF. Untuk mengimpor VM tanpa alamat IP eksternal, baca artikel Mengimpor VM tanpa alamat IP eksternal.

Saat mengimpor perangkat virtual, bagian file deskripsi berikut akan diabaikan (tidak diimpor):

  • NetworkSection
  • AnnotationSection
  • ProductSection
  • EulaSection
  • StartupSection
  • DeploymentOptionSection
  • InstallSection
  • EnvironmentFilesSection
  • SharedDiskSection
  • ScaleOutSection
  • PlacementGroupSection
  • PlacementSection
  • EncryptionSection

Batasan

Fitur ini tidak didukung untuk project yang dilindungi dengan Kontrol Layanan VPC.

Sistem operasi yang didukung

Secara opsional, Anda dapat menentukan sistem operasi di elemen OperatingSystemSection dari file deskripsi Anda atau menentukan flag --os saat mengimpor perangkat virtual menggunakan perintah gcloud compute instances import.

Untuk mengetahui informasi tentang sistem operasi yang didukung, lihat Detail sistem operasi.

Dukungan untuk BYOL dan BYOS

Secara default, file OVF yang menggunakan sistem operasi Windows Server dan Red Hat Enterprise Linux (RHEL) diimpor dan dikonfigurasi untuk menggunakan OS premium sesuai permintaan, yang menimbulkan biaya tambahan.

Jika lebih suka menggunakan lisensi atau langganan software sendiri, Anda dapat mengimpor perangkat virtual dengan lisensinya. Untuk mengetahui informasi tentang sistem operasi yang mendukung BYOL atau BYOS, lihat Detail sistem operasi.

Anda dapat mengimpor perangkat sebagai perangkat berlisensi BYOL menggunakan perintah gcloud compute instances import dengan tanda --byol. Jika Anda menentukan OS secara manual, gunakan tanda --os untuk menentukan nilai yang berisi akhiran byol untuk guest OS yang ingin diimpor. Misalnya, --os=rhel-8-byol akan mengimpor image RHEL 8 dengan lisensi yang ada.

Mengimpor di seluruh project

  • Project sumber: project tempat file OVA atau OVF disimpan.
  • Project tujuan: project tempat Anda ingin membuat VM atau image mesin.

Jika project sumber dan tujuan Anda berbeda, akun layanan di project tujuan memerlukan akses ke bucket Cloud Storage di project sumber Anda.

Untuk mengimpor di seluruh project, selesaikan langkah-langkah berikut:

  1. Di project sumber Anda, cari bucket Cloud Storage.
  2. Pada bucket Cloud Storage, berikan roles/storage.objectViewer ke akun layanan berikut:

    • Akun layanan Cloud Build untuk project tujuan: akun layanan ini memiliki format DESTINATION_PROJECT_NUMBER@cloudbuild.gserviceaccount.com
    • Akun layanan Compute Engine untuk project tujuan: akun layanan ini memiliki format DESTINATION_PROJECT_NUMBER-compute@developer.gserviceaccount.com

    Ganti DESTINATION_PROJECT_NUMBER dengan nomor project untuk project tujuan.

    Untuk mengetahui petunjuk cara memberikan akses ke bucket Cloud Storage, lihat Menambahkan akun utama ke kebijakan level bucket.

  3. Impor perangkat virtual atau image mesin.

Mengimpor perangkat virtual

Anda dapat mengimpor appliance virtual menggunakan Google Cloud CLI atau REST.

Mengimpor file OVA

gcloud

  1. Mengupload perangkat virtual ke Cloud Storage.
  2. Untuk mengimpor file OVA dari Cloud Storage ke Compute Engine, gunakan perintah gcloud compute instances import.

    gcloud compute instances import VM_NAME \
       --source-uri=gs:PATH_TO_OVA_FILE
    

    Ganti kode berikut:

    • VM_NAME: nama instance yang ingin Anda buat
    • PATH_TO_OVA_FILE: jalur ke file OVA Anda di Cloud Storage

    Contoh

    Misalnya, untuk mengimpor file OVA Ubuntu.ova dan membuat instance bernama my-instance, jalankan perintah berikut:

    gcloud compute instances import my-instance \
        --source-uri=gs://my-bucket/Ubuntu.ova
    

    Jika informasi guest OS dalam file deskripsi OVF salah atau jika ingin mengganti OS yang terdeteksi, Anda dapat menentukan sistem operasi dengan menambahkan flag --os. Untuk daftar nilai yang didukung, tinjau opsi flag --os untuk perintah gcloud compute instances import.

    Misalnya, untuk mengimpor file OVA Ubuntu.ova dan membuat instance bernama my-instance yang menjalankan Ubuntu 16.04, jalankan perintah berikut:

    gcloud compute instances import my-instance \
        --os=ubuntu-1604
        --source-uri=gs://my-bucket/Ubuntu.ova
    

REST

  1. Mengupload perangkat virtual ke Cloud Storage.

  2. Kirim permintaan POST ke Cloud Build API.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
     "timeout": "7200s",
     "steps":[
       {
         "args":[
           "-instance-names=VM_NAME",
           "-ovf-gcs-path=SOURCE_URI",
           "-zone=ZONE",
           "-client-id=api",
           "-timeout=7000s"
         ],
         "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
         "env":[
           "BUILD_ID=$BUILD_ID"
         ]
       }
     ],
     "tags":[
       "gce-ovf-import"
     ]
    }
    

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor file OVA.
    • VM_NAME: nama untuk instance mesin virtual yang akan dibuat. Contoh, my-instance.
    • SOURCE_URI: URI untuk file OVA yang disimpan di Cloud Storage. Misalnya, gs://my-bucket/my-instance.ova.
    • ZONE: zona tempat untuk membuat instance VM. Jika dibiarkan kosong, zona default untuk project akan digunakan.

    Untuk mengetahui nilai args tambahan yang dapat diberikan, lihat bagian flag opsional di Halaman GitHub impor OVF Compute Engine.

    Contoh respons

    Contoh respons berikut menyerupai output yang ditampilkan:

    {
    "name": "operations/build/myproject-12345/operation-1578608233418",
    "metadata": {
      "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata",
      "build": {
        "id": "3a2055bc-ccbd-4101-9434-d376b88b8940",
        "status": "QUEUED",
        "createTime": "2019-12-30T19:06:03.968694865Z",
        "steps": [
          {
            "name": "gcr.io/compute-image-tools/gce_ovf_import:release",
            "env": [
              "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940"
            ],
            "args": [
              "-instance-names=my-instance",
              "-ovf-gcs-path=gs://my-bucket/my-instance.ova",
              "-zone=asia-northeast2",
              "-client-id=api",
              "-timeout": "7056s"
            ]
          }
        ],
        "timeout": "7200s",
        "projectId": "myproject-12345",
        "logsBucket": "gs://12345.cloudbuild-logs.googleusercontent.com",
        "options": {
          "logging": "LEGACY"
        },
        "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=myproject-12345",
        "tags": [
          "gce-ovf-import"
        ]
      }
    }
    }
    

    Untuk memantau build, Anda dapat menggunakan salah satu metode berikut:

    • Jalankan permintaan projects.builds.get menggunakan build-id yang ditampilkan.
    • Tinjau log yang dihosting di logUrl yang disediakan.

Mengimpor file OVF

gcloud

  1. Mengupload perangkat virtual ke Cloud Storage.
  2. Untuk mengimpor file OVF dari Cloud Storage ke Compute Engine, gunakan perintah gcloud compute instances import.

    Jika direktori Anda hanya berisi satu file OVF, Anda dapat memberikan jalur ke file deskripsi atau jalur ke direktori yang berisi file OVF.

    • Untuk mengimpor file OVF menggunakan jalur ke file deskripsi, jalankan perintah berikut:

      gcloud compute instances import VM_NAME \
       --source-uri=gs:PATH_TO_OVF_FILE
      
    • Untuk mengimpor file OVF menggunakan jalur direktori, jalankan perintah berikut:

      gcloud compute instances import VM_NAME \
       --source-uri=gs:PATH_TO_OVF_DIRECTORY
      

    Ganti kode berikut:

    • VM_NAME: nama instance yang akan dibuat
    • PATH_TO_OVF_FILE: jalur ke file OVF di Cloud Storage
    • PATH_TO_OVF_DIRECTORY: jalur ke direktori yang berisi file OVF di Cloud Storage

    Contoh

    • Untuk mengimpor Ubuntu.ovf file OVF dari direktori my-ovf-directory yang membuat instance bernama my-instance, jalankan perintah berikut:

      gcloud compute instances import my-instance \
       --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
      
    • Untuk mengimpor file OVF dari direktori my-ovf-directory yang membuat instance bernama my-instance, jalankan perintah berikut:

      gcloud compute instances import my-instance \
       --source-uri=gs://my-bucket/my-ovf-directory
      

      Jika informasi guest OS dalam file deskripsi OVF salah atau jika ingin mengganti OS yang terdeteksi, Anda dapat menentukan sistem operasi dengan menambahkan flag --os. Untuk daftar nilai yang didukung, tinjau opsi flag --os untuk perintah gcloud compute instances import. Misalnya, untuk mengimpor file OVF Ubuntu.ovf dan membuat instance bernama my-instance yang menjalankan Ubuntu 16.04, jalankan perintah berikut:

      gcloud compute instances import my-instance \
       --os=ubuntu-1604 \
       --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
      

REST

  1. Menambahkan perangkat virtual ke Cloud Storage.

  2. Kirim permintaan POST ke Cloud Build API.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
     "timeout": "7200s",
     "steps":[
       {
         "args":[
           "-instance-names=VM_NAME",
           "-ovf-gcs-path=SOURCE_URI",
           "-os=OS",
           "-zone=ZONE",
           "-client-id=api",
           "-timeout=7000s"
         ],
         "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
         "env":[
           "BUILD_ID=$BUILD_ID"
         ]
       }
     ],
     "tags":[
       "gce-ovf-import"
     ]
    }
    

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor file OVA.
    • VM_NAME: nama untuk instance mesin virtual yang akan dibuat. Contoh, my-instance.
    • SOURCE_URI: URI untuk file OVF yang disimpan di Cloud Storage. Misalnya, gs://my-bucket/my-instance.ovf.
    • OS: sistem operasi file OVF. Contoh, ubuntu-1604. Flag --os bersifat opsional secara default, tetapi Anda dapat mengganti OS yang terdeteksi menggunakan tanda ini. Untuk melihat daftar nilai yang didukung, tinjau opsi flag --os untuk perintah gcloud compute instances import.
    • ZONE: zona tempat untuk membuat instance VM. Jika dibiarkan kosong, zona default untuk project akan digunakan.

    Untuk mengetahui nilai args tambahan yang dapat diberikan, lihat bagian flag opsional di Halaman GitHub impor OVF Compute Engine.

    Contoh respons

    Contoh respons berikut menyerupai output yang ditampilkan:

    {
    "name": "operations/build/myproject-12345/operation-1578608233418",
    "metadata": {
      "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata",
      "build": {
        "id": "3a2055bc-ccbd-4101-9434-d376b88b8940",
        "status": "QUEUED",
        "createTime": "2019-12-30T19:06:03.968694865Z",
        "steps": [
          {
            "name": "gcr.io/compute-image-tools/gce_ovf_import:release",
            "env": [
              "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940"
            ],
            "args": [
              "-instance-names=my-instance",
              "-ovf-gcs-path=gs://my-bucket/my-instance.ovf",
              "-os=ubuntu-1404",
              "-zone=asia-south1",
              "-client-id=api",
              "-timeout": "7056s"
            ]
          }
        ],
        "timeout": "7200s",
        "projectId": "myproject-12345",
        "logsBucket": "gs://12345.cloudbuild-logs.googleusercontent.com",
        "options": {
          "logging": "LEGACY"
        },
        "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=myproject-12345",
        "tags": [
          "gce-ovf-import"
        ]
      }
    }
    }
    

    Ada beberapa cara untuk memantau build Anda:

    • Jalankan permintaan projects.builds.get menggunakan build-id yang ditampilkan.
    • Tinjau log yang dihosting di logUrl yang disediakan.

Mengimpor dengan setelan kustom

CPU dan memori kustom

gcloud

Untuk mengganti konfigurasi CPU atau memori yang ditentukan dalam file OVF, ikuti langkah-langkah Google Cloud CLI untuk mengimpor OVA atau mengimpor file OVF dan tentukan flag --custom-cpu dan --custom-memory.

Contoh

Misalnya, untuk mengimpor instance bernama my-instance yang memiliki 2 CPU dan memori 2048 MB, jalankan perintah berikut:

gcloud compute instances import my-instance \
    --source-uri=gs://my-bucket/Ubuntu.ova \
    --custom-cpu=2 --custom-memory=2048MB

REST

Untuk mengganti konfigurasi CPU atau memori yang ditentukan dalam file OVF, ikuti langkah-langkah Cloud Build API untuk mengimpor file OVA atau mengimpor file OVF dan menentukan argumen -machine-type. -machine-type ini mewakili jenis mesin yang telah ditetapkan atau kustom yang akan digunakan.

Contoh

Misalnya, untuk mengimpor instance bernama my-instance yang memiliki 2 CPU dan memori 2048 MB, gunakan permintaan berikut. Ganti PROJECT_ID dengan project ID Anda.

POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
{
  "timeout":"7200s",
  "steps":[
    {
      "args":[
        "-instance-names=my-instance",
        "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova",
        "-machine-type=custom-2-2048",
        "-zone=asia-south1",
        "-client-id=api",
        "-timeout=7056s"
      ],
      "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
      "env":[
        "BUILD_ID=$BUILD_ID"
      ]
    }
  ],
  "tags":[
    "gce-ovf-import"
  ]
}

Jaringan kustom

Jaringan kustom harus ditentukan dalam project yang sama dengan tempat Anda mengimpor image.

gcloud

Untuk menggunakan jaringan kustom, ikuti langkah-langkah Google Cloud CLI untuk mengimpor file OVA atau mengimpor file OVF dan menentukan flag --network. Jika jaringan dikonfigurasi dengan mode subnet kustom, Anda juga harus menentukan flag --subnet dan --zone.

Contoh 1—menggunakan jaringan kustom

Misalnya, asumsikan properti berikut:

  • Nama VM: my-instance
  • Jaringan: custom-vpc-network
  • Subnet: company-vpc-us-east1-c
  • Zone: us-east1-c

Jalankan perintah berikut untuk mengimpor instance dengan properti sebelumnya. Ganti SERVICE_PROJECT_ID dengan ID untuk project tempat Anda ingin mengimpor perangkat virtual.

gcloud compute instances import my-instance \
    --source-uri=gs://my-bucket/Ubuntu.ova \
    --project SERVICE_PROJECT_ID \
    --network custom-vpc-network \
    --subnet company-vpc-us-east1-c \
    --zone us-east1-c

Contoh 2—menggunakan jaringan kustom (VPC bersama)

Misalnya, asumsikan properti berikut:

  • Nama VM: my-instance-2
  • Jaringan: my-shared-vpc
  • Subnet: my-shared-subnet
  • Zone: us-east1-c

Untuk mengimpor VM dengan properti sebelumnya, selesaikan langkah-langkah berikut:

  1. Tambahkan peran compute.networkUser ke akun layanan Cloud Build. Untuk mengetahui informasi selengkapnya, lihat Memberikan peran yang diperlukan ke akun layanan Cloud Build.

  2. Impor VM.

    gcloud compute instances import my-instance-2 \
       --source-uri gs://my-bucket/Ubuntu.ova \
       --project SERVICE_PROJECT_ID \
       --network projects/HOST_PROJECT_ID/global/networks/my-shared-vpc \
       --subnet projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/my-shared-subnet
       --zone us-east1-c
    

    Ganti kode berikut:

    • SERVICE_PROJECT_ID: ID untuk project tempat Anda ingin mengimpor perangkat virtual
    • HOST_PROJECT_ID: ID project tempat VPC bersama berada

REST

Untuk menggunakan jaringan kustom, ikuti langkah-langkah Cloud Build API untuk mengimpor file OVA atau mengimpor file OVF dan menentukan argumen -network. Jika jaringan dikonfigurasi dengan mode subnet kustom, Anda juga harus menentukan argumen -subnet dan -zone.

Contoh—menggunakan jaringan kustom

Misalnya, asumsikan properti berikut:

  • Nama VM: my-instance
  • Jaringan: custom-vpc-network
  • Subnet: company-vpc-us-east1-c
  • Zone: us-east1-c

Buat permintaan POST berikut untuk mengimpor instance dengan properti sebelumnya. Ganti SERVICE_PROJECT_ID dengan ID untuk project tempat Anda ingin mengimpor perangkat virtual.

POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds
{
  "timeout":"7200s",
  "steps":[
    {
      "args":[
        "-instance-names=my-instance",
        "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova",
        "-zone=us-east1-c",
        "-network=custom-vpc-network",
        "-subnet=company-vpc-us-east1-c",
        "-client-id=api",
        "-timeout=7000s"
      ],
      "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
      "env":[
        "BUILD_ID=$BUILD_ID"
      ]
    }
  ],
  "tags":[
    "gce-ovf-import"
  ]
}

Contoh 2—menggunakan jaringan kustom (VPC bersama)

Misalnya, asumsikan properti berikut:

  • Nama VM: my-instance-2
  • Jaringan: my-shared-vpc
  • Subnet: my-shared-subnet
  • Zone: us-east1-c

Untuk mengimpor VM dengan properti sebelumnya, selesaikan langkah-langkah berikut:

  1. Tambahkan peran compute.networkUser ke akun layanan Cloud Build. Untuk mengetahui informasi selengkapnya, lihat Memberikan peran yang diperlukan ke akun layanan Cloud Build.

  2. Buat permintaan POST berikut untuk mengimpor VM.

    POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds
    {
     "timeout":"7200s",
     "steps":[
       {
         "args":[
           "-instance-names=my-instance-2",
           "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova",
           "-zone=us-east1-c",
           "-network=projects/HOST_PROJECT_ID/global/networks/my-shared-vpc",
           "-subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/my-shared-subnet",
           "-client-id=api",
           "-timeout=7000s"
         ],
         "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
         "env":[
           "BUILD_ID=$BUILD_ID"
         ]
       }
     ],
     "tags":[
       "gce-ovf-import"
     ]
    }
    

    Ganti kode berikut:

    • SERVICE_PROJECT_ID: ID untuk project tempat Anda ingin mengimpor perangkat virtual.
    • HOST_PROJECT_ID: ID project tempat VPC bersama berada

Mengimpor VM menggunakan jaringan yang tidak mengizinkan alamat IP eksternal

Untuk mengimpor VM menggunakan jaringan yang tidak mengizinkan alamat IP eksternal, selesaikan langkah-langkah berikut:

  1. Menambahkan perangkat virtual ke Cloud Storage.

  2. Proses impor mengharuskan pengelola paket diinstal di sistem operasi untuk VM. Pengelola paket ini mungkin perlu membuat permintaan ke package repository yang berada di luar Google Cloud. Agar dapat mengakses update ini, Anda perlu mengonfigurasi Cloud NAT. Untuk mengetahui informasi selengkapnya, lihat Membuat konfigurasi NAT menggunakan Cloud Router.

  3. Konfigurasikan Akses Google Pribadi. Untuk petunjuk mendetail, lihat Mengonfigurasi Akses Google Pribadi.

  4. Impor VM menggunakan Google Cloud CLI atau REST.

    Saat VM dibuat dari perangkat virtual, VM sementara akan dibuat di project Anda. Untuk memastikan bahwa VM sementara ini tidak diberi alamat IP eksternal, Anda harus menentukan flag atau argumen tambahan.

    Untuk informasi selengkapnya, klik tab berikut:

gcloud

Untuk mengimpor perangkat virtual dari Cloud Storage ke Compute Engine, gunakan perintah gcloud compute instances import dengan flag --no-address.

gcloud compute instances import VM_NAME \
    --source-uri=SOURCE_URI \
    --zone=ZONE \
    --no-address

Ganti kode berikut:

  • VM_NAME: nama instance yang ingin Anda buat.
  • SOURCE_URI: URI untuk file OVA atau OVF Anda di Cloud Storage. Contoh, gs://my-bucket/Ubuntu.ova.
  • ZONE: zona tempat untuk membuat perangkat virtual. Jika dibiarkan kosong, zona default untuk project akan digunakan.

REST

Anda dapat mengimpor VM tanpa IP eksternal menggunakan Cloud Build API dengan penggantian untuk IP eksternal.

Untuk mengganti setelan IP eksternal yang ditentukan dalam file OVF, ikuti langkah-langkah Cloud Build API untuk mengimpor file OVA atau mengimpor file OVF dan menentukan -no-external-ip.

POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
{
  "timeout":"7200s",
  "steps":[
    {
      "args":[
        "-instance-names=VM_NAME",
        "-ovf-gcs-path=SOURCE_FILE",
        "-no-external-ip",
        "-zone=ZONE",
        "-client-id=api",
        "-timeout=7000s"
      ],
      "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
      "env":[
        "BUILD_ID=$BUILD_ID"
      ]
    }
  ],
  "tags":[
    "gce-ovf-import"
  ]
}

Ganti kode berikut:

  • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor image.
  • VM_NAME: nama VM yang akan dibuat.
  • SOURCE_FILE: URI untuk image di Cloud Storage. Contoh, gs://my-bucket/Ubuntu.ova.
  • ZONE: zona tempat membuat image. Jika dibiarkan kosong, zona default untuk project akan digunakan.

Mengimpor file OVA dengan bootloader UEFI

gcloud

Anda dapat menggunakan perintah gcloud compute instances import untuk memaksa impor menggunakan booting UEFI.

gcloud compute instances import VM_NAME \
  --source-uri=SOURCE_URI \
  --guest-os-features=UEFI_COMPATIBLE

Ganti kode berikut:

  • VM_NAME: nama VM yang ingin Anda buat.
  • SOURCE_URI: URI untuk file OVA atau OVF Anda di Cloud Storage. Misalnya, gs://my-bucket/Ubuntu.ova.

REST

Anda dapat mengimpor file OVA dengan bootloader UEFI menggunakan Cloud Build API dan menentukan argumen -uefi-compatible.

  1. Upload perangkat virtual ke Cloud Storage.

  2. Di API, buat permintaan POST ke Cloud Build API.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
     "timeout": "7200s",
     "steps":[
       {
         "args":[
           "-instance-names=VM_NAME",
           "-ovf-gcs-path=SOURCE_URI",
           "-uefi-compatible",
           "-zone=ZONE",
           "-client-id=api",
           "-timeout=7000s"
         ],
         "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
         "env":[
           "BUILD_ID=$BUILD_ID"
         ]
       }
     ],
     "tags":[
       "gce-ovf-import"
     ]
    }
    

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor file OVA.
    • VM_NAME: nama untuk instance mesin virtual yang akan dibuat. Contoh, my-instance.
    • SOURCE_URI: URI untuk file OVA yang disimpan di Cloud Storage. Misalnya, gs://my-bucket/my-instance.ova.
    • ZONE: zona tempat untuk membuat instance VM. Jika dibiarkan kosong, zona default untuk project akan digunakan.

Mengimpor perangkat virtual menggunakan akun layanan kustom

Selama proses impor perangkat virtual, instance virtual machine (VM) sementara akan dibuat dalam project Anda. Alat impor pada VM sementara ini harus diautentikasi.

Akun layanan adalah identitas yang terpasang pada VM. Token akses akun layanan dapat diakses melalui server metadata instance dan digunakan untuk mengautentikasi alat impor pada VM.

Secara default, proses impor menggunakan akun layanan Compute Engine default. Namun, jika akun layanan Compute Engine default dinonaktifkan di project Anda atau jika ingin menggunakan akun layanan Compute Engine kustom, Anda harus membuat akun layanan dan menentukannya untuk proses impor.

gcloud

  1. Menambahkan perangkat virtual ke Cloud Storage.

  2. Buat akun layanan dan tetapkan peran minimum. Untuk informasi selengkapnya tentang cara membuat akun layanan, lihat Membuat dan mengelola akun layanan.

    Akun layanan Compute Engine yang ditentukan setidaknya harus memiliki peran berikut yang ditetapkan:

    • roles/compute.storageAdmin
    • roles/storage.objectViewer

    Peran minimum ini diperlukan untuk akun layanan yang ditentukan untuk flag --compute-service-account. Untuk mengetahui informasi selengkapnya, lihat Memberikan peran yang diperlukan ke akun layanan Compute Engine.

  3. Gunakan perintah gcloud compute instances import untuk mengimpor perangkat virtual.

    gcloud compute instances import VM_NAME \
    --source-uri=SOURCE_URI \
    --zone=ZONE \
    --compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL \
    --service-account=SERVICE_ACCOUNT_EMAIL \
    --scopes=SCOPES
    

    Ganti kode berikut:

    • VM_NAME: nama instance yang ingin Anda buat.
    • SOURCE_URI: URI untuk file OVA atau OVF Anda di Cloud Storage. Contoh, gs://my-bucket/Ubuntu.ova.
    • ZONE: zona tempat untuk membuat perangkat virtual. Jika dibiarkan kosong, zona default untuk project akan digunakan.
    • TEMP_SERVICE_ACCOUNT_EMAIL: alamat email yang terkait dengan akun layanan kustom yang dibuat di langkah sebelumnya. Akun layanan ini digunakan oleh VM sementara. Jika tidak ditentukan, VM akan menggunakan akun layanan Compute Engine default.
    • SERVICE_ACCOUNT_EMAIL: alamat email yang terkait dengan akun layanan kustom yang akan dilampirkan ke VM yang dibuat oleh proses impor. Tidak ada pembatasan izin untuk akun layanan ini. Anda dapat menyesuaikan akun layanan ini sesuai kebutuhan. Jika tidak ditentukan, akun layanan Compute Engine default akan ditambahkan ke VM.
    • SCOPES: menentukan tingkat akses untuk opsi --service-account. Jika tidak ditentukan, cakupan default akan digunakan. Untuk mengetahui informasi selengkapnya, tinjau flag --scopes.

REST

  1. Menambahkan perangkat virtual ke Cloud Storage.

  2. Buat akun layanan dan tetapkan peran minimum. Untuk informasi selengkapnya tentang cara membuat akun layanan, lihat Membuat dan mengelola akun layanan.

    Akun layanan Compute Engine yang ditentukan setidaknya harus memiliki peran berikut yang ditetapkan:

    • roles/compute.storageAdmin
    • roles/storage.objectViewer

    Peran minimum ini diperlukan untuk akun layanan yang ditentukan untuk argumen -compute-service-account. Untuk mengetahui informasi selengkapnya, lihat Memberikan peran yang diperlukan ke akun layanan Compute Engine.

  3. Di API, buat permintaan POST ke Cloud Build API.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
      "timeout":"7200s",
      "steps":[
        {
          "args":[
            "-instance-names=VM_NAME",
            "-ovf-gcs-path=SOURCE_FILE",
            "-compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL",
            "-service-account=SERVICE_ACCOUNT_EMAIL",
            "-zone=ZONE",
            "-scopes=SCOPES",
            "-client-id=api",
            "-timeout=7000s"
          ],
          "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
          "env":[
            "BUILD_ID=$BUILD_ID"
          ]
        }
      ],
      "tags":[
        "gce-ovf-import"
      ]
    }
    

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor image.
    • VM_NAME: nama VM yang akan dibuat.
    • SOURCE_FILE: URI untuk image di Cloud Storage. Contoh, gs://my-bucket/Ubuntu.ova.
    • ZONE: zona tempat membuat image. Jika dibiarkan kosong, zona default untuk project akan digunakan.
    • TEMP_SERVICE_ACCOUNT_EMAIL: alamat email yang terkait dengan akun layanan kustom yang dibuat di langkah sebelumnya. Akun layanan ini digunakan oleh VM sementara. Jika tidak ditentukan, VM akan menggunakan akun layanan Compute Engine default.
    • SERVICE_ACCOUNT_EMAIL: alamat email yang terkait dengan akun layanan kustom yang akan dilampirkan ke VM yang dibuat oleh proses impor. Tidak ada pembatasan izin untuk akun layanan ini. Anda dapat menyesuaikan akun layanan ini sesuai kebutuhan. Jika tidak ditentukan, akun layanan Compute Engine default akan ditambahkan ke VM.
    • SCOPES: menentukan tingkat akses untuk opsi -service-account. Jika tidak ditentukan, cakupan default akan digunakan. Untuk mengetahui informasi selengkapnya, tinjau flag --scopes.

Langkah selanjutnya