Mengimpor image mesin dari perangkat virtual


Gunakan image mesin untuk menyimpan semua konfigurasi, metadata, izin, dan data dari satu atau beberapa disk untuk instance VM yang berjalan di Compute Engine. Untuk mengetahui informasi tentang kapan dan cara menggunakan image mesin, lihat Image mesin.

Dokumen ini menjelaskan langkah-langkah untuk mengimpor image mesin dari perangkat virtual.

Sebelum memulai

  • Jika project tempat Anda ingin mengimpor image mesin memiliki kebijakan image tepercaya yang telah ditentukan, tambahkanprojects/compute-image-import dan projects/compute-image-tools ke daftar yang diizinkan penayang.
  • Jika Anda mengimpor appliance virtual dari project lain, lihat Mengimpor lintas project.
  • Tinjau persyaratan file VM dan OVF sumber dalam panduan Compute Engine mengimpor perangkat virtual.
  • Untuk mengetahui cara memenuhi persyaratan sebelum mengimpor image mesin, 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

Pembatasan dan batasan

  • Anda dapat membagikan image mesin di seluruh project. Namun, jaringan VPC bersama tidak didukung.
  • Fitur ini tidak didukung untuk project yang dilindungi dengan Kontrol Layanan VPC.
  • Image mesin tidak dapat dibuat dari VM sumber yang memiliki lebih dari 200 TB disk yang terpasang.

Sistem operasi yang didukung

Untuk dukungan sistem operasi, lihat Detail sistem operasi.

Mengimpor image mesin

Anda dapat mengimpor image mesin dari peralatan virtual menggunakan Google Cloud CLI atau REST.

gcloud

Gunakan perintah gcloud compute machine-images import untuk mengimpor image mesin dari perangkat virtual.

gcloud compute machine-images import MACHINE_IMAGE_NAME \
    --source-uri=gs:SOURCE_URI \
    --os=OS

Ganti kode berikut:

  • MACHINE_IMAGE_NAME: nama image mesin yang ingin Anda impor.
  • SOURCE_URI: jalur ke file OVA atau OVF Anda di Cloud Storage.
  • OS: sistem operasi file OVA. Flag ini bersifat opsional secara default, tetapi mungkin diperlukan dalam beberapa kasus. Sebaiknya Anda memberikan flag ini.

Contoh

Misalnya, Anda dapat menggunakan perintah gcloud berikut untuk mengimpor image mesin yang disebut my-machine-image dari file OVA sumber bernama my-ova, yang disimpan dalam direktori gs://my-bucket dan menjalankan centos-7:

gcloud compute machine-images import my-machine-image  \
    --source-uri=gs://my-bucket/my-ova/ \
    --os=centos-7

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":[
           "-machine-image-name=MACHINE_IMAGE_NAME",
           "-ovf-gcs-path=SOURCE_URI",
           "-os=OS",
           "-client-id=api",
           "-timeout=7000s"
         ],
         "name":"gcr.io/compute-image-tools/gce_ovf_import:release",
         "env":[
           "BUILD_ID=$BUILD_ID"
         ]
       }
     ],
     "tags":"gce-ovf-machine-image-import"
    }
    

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor file OVA.
    • MACHINE_IMAGE_NAME: nama untuk image mesin yang akan diimpor. Contoh, my-machine-image.
    • SOURCE_URI: URI untuk file OVA atau direktori yang berisi paket OVF yang disimpan di Cloud Storage. Contoh, gs://my-bucket/my-instance.ova.
    • OS: sistem operasi file OVA. Contoh, ubuntu-1604. Tanda ini secara default bersifat opsional, tetapi mungkin diperlukan dalam beberapa kasus. Sebaiknya Anda memberikan flag ini.

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

Mengimpor image mesin dengan penggantian OVF

CPU dan memori kustom

gcloud

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

Contoh

Image mesin bernama my-machine-image memiliki penggantian berikut yang diterapkan ke setelan di file OVF:

  • Sistem operasi: Ubuntu 1404
  • CPU: 2 CPUs
  • Memori: 2048 MB

Untuk mengimpor my-machine-image dengan penggantian ini, jalankan perintah berikut:

gcloud compute machine-images import my-machine-image \
    --os=ubuntu-1404 --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 Compute Engine API untuk mengimpor image mesin dan tentukan argumen -machine-type. -machine-type ini mewakili jenis mesin yang telah ditetapkan atau kustom yang akan digunakan.

Contoh

Image mesin bernama my-machine-image memiliki penggantian berikut yang diterapkan ke setelan di file OVF:

  • Sistem operasi: Ubuntu 1404
  • CPU: 2 CPUs
  • Memori: 2048 MB

Untuk mengimpor my-machine-image dengan penggantian ini, buat permintaan berikut ke Compute Engine API.

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

Ganti PROJECT_ID dengan project ID Anda.

Jaringan kustom

gcloud

Untuk menyiapkan jaringan kustom, ikuti langkah-langkah Google Cloud CLI untuk mengimpor image mesin dan menentukan flag --network. Jika jaringan dikonfigurasi dengan mode subnet kustom, Anda juga harus menentukan flag --subnet dan --zone.

Contoh

Image mesin bernama my-machine-image memiliki penggantian berikut yang diterapkan ke setelan di file OVF:

  • Sistem operasi: Ubuntu 1404
  • Jaringan: custom-vpc-network
  • Subnet: company-vpc-us-east1-c
  • Zona: us-east1-c

Untuk mengimpor my-machine-image dengan penggantian ini, jalankan contoh perintah berikut:

gcloud compute machine-images import my-machine-image \
    --os=ubuntu-1404 \
    --source-uri=gs://my-bucket/Ubuntu.ova \
    --network=custom-vpc-network \
    --subnet=company-vpc-us-east1-c \
    --zone=us-east1-c

REST

Untuk menggunakan jaringan kustom, ikuti langkah-langkah Compute Engine API untuk mengimpor image mesin dan menentukan argumen -network. Jika jaringan dikonfigurasi dengan mode subnet kustom, Anda juga harus menentukan argumen -subnet dan -zone.

Contoh

Image mesin bernama my-machine-image memiliki penggantian berikut yang diterapkan ke setelan di file OVF:

  • Sistem operasi: Ubuntu 1404
  • Jaringan: custom-vpc-network
  • Subnet: company-vpc-us-east1-c
  • Zona: us-central1-c

Untuk mengimpor my-machine-image dengan penggantian ini, buat permintaan berikut ke Compute Engine API.

POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
{
  "timeout":"7200s",
  "steps":[
    {
      "args":[
        "-machine-image-name=my-machine-image",
        "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova",
        "-os=ubuntu-1404",
        "-zone=us-central1-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=$BUsILD_ID"
      ]
    }
  ],
  "tags":"gce-ovf-machine-image-import"
}

Ganti PROJECT_ID dengan project ID Anda.

Mengimpor image mesin dalam jaringan yang tidak mengizinkan IP eksternal

Untuk mengimpor image mesin 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 pada sistem operasi untuk image mesin. 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 informasi selengkapnya, lihat Mengonfigurasi Akses Google Pribadi.

  4. Impor image mesin menggunakan Google Cloud CLI atau Cloud Build API.

    Saat Anda mengimpor image mesin 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 mengetahui informasi selengkapnya tentang flag atau argumen yang diperlukan, klik tab berikut:

gcloud

Gunakan perintah gcloud compute machine-images import dengan flag --no-address.

gcloud compute machine-images import MACHINE_IMAGE_NAME \
    --source-uri=SOURCE_URI \
    --os=OS \
    --zone=ZONE \
    --no-address

Ganti kode berikut:

  • MACHINE_IMAGE_NAME: nama image mesin yang ingin Anda impor.
  • SOURCE_URI: URI untuk file OVA atau OVF Anda di Cloud Storage. Contoh, gs://my-bucket/Ubuntu.ova.
  • OS: sistem operasi file OVA. Flag ini bersifat opsional secara default, tetapi mungkin diperlukan dalam beberapa kasus. Sebaiknya Anda memberikan flag ini. Untuk mengetahui daftar nilai yang didukung, lihat opsi flag --os untuk perintah gcloud compute machine-images import.
  • ZONE: zona tempat mengimpor image mesin. Jika dibiarkan kosong, zona default untuk project akan digunakan.

REST

Gunakan Cloud Build API dan tentukan argumen -no-external-ip.

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

Ganti kode berikut:

  • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor image mesin.
  • MACHINE_IMAGE_NAME: nama untuk image mesin yang akan diimpor. Contoh, my-machine-image.
  • SOURCE_URI: URI untuk file OVA yang disimpan di Cloud Storage. Contoh, gs://my-bucket/my-machine.ova.
  • OS: sistem operasi file OVA. Contoh, ubuntu-1604. Tanda ini secara default bersifat opsional, tetapi mungkin diperlukan dalam beberapa kasus. Sebaiknya Anda memberikan flag ini. Untuk daftar nilai yang didukung, lihat opsi flag --os untuk perintah gcloud compute instances import.
  • ZONE: zona tempat mengimpor image mesin.

Mengimpor image mesin menggunakan akun layanan kustom

Selama impor image mesin, instance mesin virtual (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 VM dan digunakan untuk mengautentikasi alat impor di 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 machine-images import untuk mengimpor image mesin dari perangkat virtual.

    gcloud compute machine-images import MACHINE_IMAGE_NAME \
        --source-uri=gs:SOURCE_URI \
        --os=OS \
        --compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL \
        --service-account=SERVICE_ACCOUNT_EMAIL \
        --scopes=SCOPES
    

    Ganti kode berikut:

    • MACHINE_IMAGE_NAME: nama image mesin yang ingin Anda impor.
    • SOURCE_URI: jalur ke file OVA atau OVF Anda di Cloud Storage.
    • OS: sistem operasi file OVA. Flag ini bersifat opsional secara default, tetapi mungkin diperlukan dalam beberapa kasus. Sebaiknya Anda memberikan flag ini.
    • 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 apa pun yang dibuat dari image mesin ini. 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. Kirim permintaan POST ke Cloud Build API.

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

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk project tempat Anda ingin mengimpor image mesin.
    • MACHINE_IMAGE_NAME: nama untuk image mesin yang akan diimpor. Contoh, my-machine-image.
    • SOURCE_URI: URI untuk file OVA yang disimpan di Cloud Storage. Contoh, gs://my-bucket/my-machine.ova.
    • OS: sistem operasi file OVA. Contoh, ubuntu-1604. Tanda ini secara default bersifat opsional, tetapi mungkin diperlukan dalam beberapa kasus. Sebaiknya Anda memberikan flag ini. Untuk daftar nilai yang didukung, lihat opsi flag --os untuk perintah gcloud compute instances import.
    • ZONE: zona tempat mengimpor image mesin.
    • 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 apa pun yang dibuat dari image mesin ini. 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.

Apa langkah selanjutnya?