Mem-build image virtual machine (VM)

Halaman ini membantu Anda membuat image mesin publik agar produk Anda dapat berjalan di Compute Engine.

Image berisi bootloader, sistem operasi, dan sistem file root yang diperlukan untuk memulai instance. Anda dapat mengonfigurasi image dengan serangkaian aplikasi dan layanan untuk produk Anda. Image ini digunakan oleh pelanggan untuk meluncurkan instance virtual machine (VM) di cloud.

Sebaiknya mulai dengan membuat image di project pengembangan, lalu pindahkan ke project publik setelah Engineer Partner Google Anda memverifikasi image.

Sebelum memulai

  1. Download Google Cloud SDK.

Membuat VM produk dasar

Untuk membuat image mesin kustom untuk Cloud Marketplace, Anda harus menyelesaikan langkah-langkah berikut (dijelaskan di bagian berikut):

  • Gunakan salah satu image publik dasar yang didukung Google untuk membuat VM, dan instal paket dan konfigurasi khusus aplikasi Anda.

    Anda dapat memilih image yang menggunakan prosesor Arm atau yang menggunakan prosesor x86. Anda juga dapat menyertakan beberapa gambar, yang menargetkan jenis mesin yang berbeda, dalam satu produk VM. Untuk mengetahui informasi selengkapnya tentang platform CPU dan jenis mesin yang mendukungnya, lihat Platform CPU.

  • Jika Anda ingin memberikan dukungan kepada pelanggan, instal skrip untuk mengambil kredensial pengguna aplikasi.

Membuat image VM berlisensi

  1. Gunakan gcloud untuk menetapkan setelan default untuk Google Cloud CLI:

    gcloud config set project <project_id>
    gcloud config set compute/zone <zone>
  2. Buat instance utama yang digunakan untuk menginstal software Anda, lalu nantinya, konversikan ke image untuk digunakan di Cloud Marketplace. Untuk mengetahui informasi selengkapnya tentang cara membuat instance, lihat Membuat dan memulai instance.

    gcloud compute instances create ${INSTANCE} --scopes
    https://www.googleapis.com/auth/cloud-platform 
  3. Instal dan sesuaikan software Anda. Sertakan skrip startup yang diperlukan, seperti skrip untuk membuat kredensial otorisasi.

    Untuk membuat kredensial otorisasi menggunakan sandi acak yang aman, ikuti langkah-langkah dalam Membuat kredensial otorisasi, di bagian berikut.

    Setelah membuat dan menyesuaikan instance utama, siapkan disk yang diperlukan untuk membuat image VM.

  4. Kosongkan disk Anda. Membuat image VM langsung dari VM juga mentransfer direktori pengguna dan kunci SSH ke VM pelanggan, sehingga Anda harus menghapus disk input saat membuat image VM.

    Untuk membersihkan disk:

    1. Di menu VM Instances Compute Engine, klik nama instance yang ingin Anda hapus, lalu klik Edit.

    2. Scroll ke bawah dan hapus centang pada kotak Delete boot disk when instance is deleted, lalu klik Save. Anda menggunakan disk untuk membuat image.

    3. Menghapus VM sekaligus mempertahankan disk. Anda akan diminta untuk mengonfirmasi penghapusan. Jangan pilih Also delete boot disk.

    4. Selanjutnya, Anda perlu membuat Instance VM baru. Luaskan opsi Management, disk, networking, SSH keys.

    5. Di bagian disk, lampirkan disk dari instance sebelumnya sebagai disk data tambahan. Pastikan Keep disk dipilih untuk When deleting instance.

      Sekarang Anda dapat menggunakan SSH ke instance dan menghapus direktori beranda atau file sementara lainnya yang dibuat selama proses penginstalan software. Anda harus memasang disk data sebelum dapat mengaksesnya. Untuk mengetahui informasi selengkapnya tentang cara memasang disk, lihat Menambahkan atau Mengubah Ukuran Persistent Disk.

    6. Setelah selesai, matikan dan hapus instance sambil mempertahankan disk data yang telah diperbarui. Sekarang Anda dapat membuat image VM dengan menyelesaikan langkah-langkah berikut.

  5. Dapatkan nama lisensi untuk produk VM Anda di Producer Portal menggunakan langkah-langkah berikut:

    1. Buka Producer Portal di konsol Google Cloud:

      https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID
      

      Ganti YOUR_PROJECT_ID dengan ID untuk project pengembangan atau publik Anda. Sebaiknya mulai dengan membuat image di project pengembangan, lalu pindahkan ke project publik setelah Engineer Partner Google memverifikasi image.

    2. Klik nama produk Anda.

    3. Buka bagian Paket Deployment. Di bagian VM license, catat namanya. Anda menggunakan nama lisensi ini di langkah berikut, saat membuat image.

  6. Buat image berlisensi dengan menjalankan perintah gcloud berikut:

    gcloud compute images create CREATE_IMAGE_NAME \
     --project PUBLIC_PROJECT_NAME \
     --source-disk projects/DEV_PROJECT_NAME/zones/SOURCE_DISK_ZONE/disks/SOURCE_DISK_NAME \
     --licenses LICENSE_NAME \
     --description ADD_DESCRIPTION

    Ganti kode berikut:

    • CREATE_IMAGE_NAME: Nama image dan arsitektur CPU yang didukungnya, dalam format who-vmOS-image-architecture-date, yang mengganti architecture dengan Arm atau x86_64, bergantung pada arsitektur CPU yang didukung image. Anda harus menggunakan nama baru dan unik setiap kali memperbarui gambar untuk produk Anda.

    • PUBLIC_PROJECT_NAME: Project ID untuk project publik Anda untuk Cloud Marketplace. Anda harus telah diberi peran Compute Storage Admin (roles/compute.storageAdmin) untuk project ini.

    • LICENSE_NAME: Nama lisensi untuk produk VM yang Anda catat di langkah sebelumnya.

    • DEV_PROJECT_NAME: Project ID untuk project yang Anda buat untuk pengembangan dan pengujian Cloud Marketplace. Anda harus memiliki peran Compute Image User (roles/compute.imageUser) untuk project ini.

    • SOURCE_DISK_ZONE: Zona disk sumber.

    • SOURCE_DISK_NAME: Nama disk sumber.

    • ADD_DESCRIPTION: Deskripsi tekstual opsional untuk gambar yang sedang dibuat.

Membuat gambar menjadi publik

Untuk produk non-Terraform yang tidak menggunakan image milik Marketplace, Anda harus membuat image tersedia secara publik sehingga pelanggan dapat men-deploy-nya ke instance Compute Engine mereka. Untuk membuat image bersifat publik, gunakan konsol Google Cloud atau Google Cloud CLI:

Konsol

  1. Di project publik, pada bagian Compute Engine, buka halaman Image.

    Membuka halaman Images

  2. Pilih gambar Anda, seperti yang ditunjukkan di bawah:

  3. Jika Anda tidak melihat panel info di kanan atas, klik Tampilkan Panel Info.

  4. Di panel info, di kolom Tambahkan Anggota, masukkan allAuthenticatedUsers, dan dari menu Pilih peran, pilih Compute Image User.

  5. Klik Tambahkan untuk menjadikan gambar Anda publik.

Command Line

Gunakan perintah gcloud berikut di Cloud Shell, atau di komputer lokal Anda:

gcloud compute images add-iam-policy-binding IMAGE_NAME --member=allAuthenticatedUsers --role=roles/compute.imageUser

Membuat kredensial otorisasi

Jika produk Anda adalah deployment sederhana dari satu instance VM dengan aturan firewall dasar, Anda dapat otomatis menyertakan sandi acak yang aman saat mengonfigurasi paket deployment secara langsung.

Jika berencana membuat paket deployment menggunakan alat mpdev open source, yang kami rekomendasikan untuk sebagian besar kasus penggunaan, Anda dapat menggunakan mpdev untuk secara otomatis menyertakan beberapa sandi acak yang aman.

Untuk mengetahui langkah-langkah pembuatan kredensial otorisasi, lihat Membuat paket deployment.

Setelah produk di-deploy, untuk mendapatkan nilai sandi yang Anda buat, gunakan perintah berikut dari dalam instance VM:

curl -H "Metadata-Flavor: Google" \
http://metadata/computeMetadata/v1/instance/attributes/PASSWORD_NAME

Menguji image VM

Buat instance VM dengan image yang baru dibuat, dan verifikasi fungsinya.

Selain itu, untuk memverifikasi ID lisensi, gunakan SSH ke instance dan pastikan lisensi yang valid terlampir:

curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/licenses/?recursive=true

Pastikan Python 2.6 atau yang lebih baru telah diinstal:

python -V

Pastikan paket berikut telah diinstal:

gcloud --version
ssh -V
ps aux | grep sshd
curl -V
ps aux | grep dhcp

Periksa untuk memastikan tidak ada direktori pengguna lain yang diinstal di instance kecuali milik Anda, dan tidak ada direktori pengguna dan kredensial yang tersisa selain milik Anda.