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
- 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
Gunakan gcloud untuk menetapkan setelan default untuk Google Cloud CLI:
gcloud config set project <project_id> gcloud config set compute/zone <zone>
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
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.
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:
Di menu VM Instances Compute Engine, klik nama instance yang ingin Anda hapus, lalu klik Edit.
Scroll ke bawah dan hapus centang pada kotak Delete boot disk when instance is deleted, lalu klik Save. Anda menggunakan disk untuk membuat image.
Menghapus VM sekaligus mempertahankan disk. Anda akan diminta untuk mengonfirmasi penghapusan. Jangan pilih Also delete boot disk.
Selanjutnya, Anda perlu membuat Instance VM baru. Luaskan opsi Management, disk, networking, SSH keys.
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.
Setelah selesai, matikan dan hapus instance sambil mempertahankan disk data yang telah diperbarui. Sekarang Anda dapat membuat image VM dengan menyelesaikan langkah-langkah berikut.
Dapatkan nama lisensi untuk produk VM Anda di Producer Portal menggunakan langkah-langkah berikut:
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.
Klik nama produk Anda.
Buka bagian Paket Deployment. Di bagian VM license, catat namanya. Anda menggunakan nama lisensi ini di langkah berikut, saat membuat image.
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 menggantiarchitecture
denganArm
ataux86_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
Di project publik, pada bagian Compute Engine, buka halaman Image.
Pilih gambar Anda, seperti yang ditunjukkan di bawah:
Jika Anda tidak melihat panel info di kanan atas, klik Tampilkan Panel Info.
Di panel info, di kolom Tambahkan Anggota, masukkan
allAuthenticatedUsers
, dan dari menu Pilih peran, pilih Compute Image User.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.