Mengonfigurasi image VM untuk deployment Terraform

Artikel ini menjelaskan cara menyelesaikan konfigurasi dan mengirimkan image VM untuk deployment menggunakan Terraform.

Menentukan cara membuat paket deployment

Sebaiknya gunakan opsi konfigurasi terpandu Producer Portal untuk membuat paket deployment langsung di konsol Google Cloud.

Opsi konfigurasi terpandu mendukung produk VM sederhana, seperti deployment VM tunggal dengan aturan firewall dasar, tetapi tidak mendukung beberapa fitur kompleks, seperti deployment dengan beberapa VM dan resource non-komputasi. Jika memerlukan fitur yang tidak didukung konfigurasi terpandu, Anda dapat menggunakan opsi konfigurasi manual untuk membuat paket deployment atau untuk menyesuaikan paket yang ada dengan menambahkan kemampuan tambahan ke dalamnya.

Beralih antara konfigurasi terpandu dan konfigurasi manual

Jika Anda menggunakan opsi konfigurasi terpandu di Producer Portal dan nantinya ingin beralih untuk mengonfigurasi paket deployment secara manual, klik Buka konfigurasi manual.

Menyelesaikan konfigurasi terpandu

Untuk menyelesaikan konfigurasi dan mengirimkan paket deployment sederhana menggunakan konsol Google Cloud, selesaikan langkah-langkah berikut:

  1. Di Producer Portal, buka bagian Paket deployment.

  2. Di bagian Konfigurasi Terraform, di samping kolom input berlabel Cloud Storage Bucket, klik Browse.

    Jika Anda telah membuat bucket Cloud Storage, pilih bucket tersebut di sini.

    Jika Anda tidak memiliki bucket Cloud Storage, klik ikon berlabel Buat bucket baru. Saat membuat bucket baru, Anda:

    • Pilih nama untuk bucket.

    • Tentukan region tempat bucket menyimpan data.

    • Tentukan class penyimpanan untuk data Anda.

    • Tentukan tingkat perincian yang akan diterapkan ke izin Identity and Access Management (IAM) untuk data bucket.

    • Konfigurasikan setelan lanjutan opsional, seperti enkripsi atau kebijakan retensi data.

  3. Pastikan Anda mengaktifkan Pembuatan Versi Objek untuk bucket Cloud Storage.

  4. Untuk menyimpan setelan bucket dan melanjutkan konfigurasi paket deployment, klik Configure.

  5. Di bagian Choose the machine type, Anda harus menentukan Default zone, Minimum machine type, dan Default machine type untuk produk VM Anda, beserta ukuran dan jenis disk bootingnya.

  6. Di bagian Tentukan sistem operasi, Anda harus menentukan nama dan versi OS yang digunakan image VM, serta nomor versi image VM.

  7. Secara opsional, di bagian Siapkan akses VM, Anda dapat menentukan URL situs dan administrator, beserta nama pengguna dan sandi, yang dapat digunakan pengguna untuk mengakses VM setelah deployment.

  8. Jika ingin, di bagian Konfigurasikan jaringan, Anda dapat menentukan setelan untuk Penerusan IP dan mengonfigurasi aturan Firewall.

  9. Secara opsional, di bagian Menentukan langkah berikutnya, Anda dapat memberikan petunjuk untuk pengguna produk Anda guna memandu mereka memulai produk Anda. Petunjuk ini akan terlihat oleh mereka setelah mereka men-deploy produk Anda.

  10. Setelah menyelesaikan langkah-langkah sebelumnya, klik Buat untuk membuat paket deployment.

    Jika perlu melakukan perubahan tambahan pada paket deployment nanti, Anda dapat mengklik Edit untuk melakukan perubahan, lalu mengklik Generate untuk membuat ulang paket deployment dengan perubahan tersebut diterapkan.

  11. Validasi paket deployment di Producer Portal.

  12. Setelah validasi Cloud Marketplace terhadap paket deployment Anda berhasil diselesaikan, klik Publikasikan untuk mulai menguji paket deployment Anda.

Menyelesaikan konfigurasi manual

Bagian ini menjelaskan cara menggunakan opsi konfigurasi manual untuk membuat paket deployment dan mengirimkan paket untuk ditinjau.

Menentukan apakah akan menggunakan modul Terraform default atau kustom

Anda dapat memilih apakah ingin pelanggan menggunakan modul Terraform default atau kustom saat mereka men-deploy produk Anda.

Jika Anda memilih untuk menggunakan modul Terraform default, Google Cloud akan menyediakan kode Terraform yang dibuat secara otomatis kepada pelanggan Anda yang dapat mereka gunakan untuk men-deploy produk Anda.

Jika memilih untuk menggunakan modul Terraform kustom, Anda harus memberikan template Terraform Anda sendiri kepada pelanggan. Anda dapat memilih untuk menyediakan template ini dalam bentuk yang dapat di-deploy pelanggan menggunakan antarmuka command line (CLI), atau dengan metadata tambahan yang memungkinkan pelanggan men-deploy modul langsung dari Cloud Marketplace.

Untuk menentukan apakah pelanggan harus menggunakan modul Terraform default atau kustom, dan, untuk modul Terraform kustom, cara Anda ingin pelanggan men-deploy modul, selesaikan langkah-langkah berikut:

  1. Di Producer Portal, buka bagian Paket deployment.

  2. Di bagian Konfigurasi Terraform, pada bagian Jenis, pilih Default, Kustom (deployment CLI), atau Kustom (deployment UI).

Persyaratan untuk modul Terraform kustom

Jika Anda memilih untuk menggunakan modul Terraform kustom, modul kustom Anda harus memenuhi persyaratan berikut:

  • Modul kustom Anda harus memiliki modul yang dapat digunakan Cloud Marketplace untuk memverifikasi bahwa modul tersebut memenuhi persyaratan. Untuk informasi selengkapnya, lihat Menguji apakah modul Anda lulus verifikasi.

  • Modul Anda harus memiliki variabel bernama project_id, yang menyimpan project ID yang digunakan pelanggan untuk men-deploy modul.

  • Anda harus menentukan referensi ke nama image sebagai variabel Terraform, dengan format projects/PROJECT_NAME/global/images/IMAGE_NAME. Nilai default harus ditetapkan ke nama image VM Anda, sehingga salinan image milik Cloud Marketplace dapat diganti ke dalam modul saat produk VM Anda dipublikasikan.

  • Modul Anda tidak boleh bergantung pada modul luar yang tidak dipaketkan dengan modul tersebut.

  • Modul Anda hanya boleh menggunakan penyedia yang disetujui berikut:

    • archive
    • cloud-init
    • dns
    • google
    • google-beta
    • http
    • null
    • random
    • time
    • tls

Untuk contoh modul kustom yang sesuai dengan persyaratan ini, buka contoh modul Terraform kustom.

Persyaratan tambahan untuk modul Terraform kustom untuk deployment UI

Jika modul kustom Anda mendukung deployment UI, modul tersebut harus memenuhi persyaratan tambahan berikut:

  • Modul Anda harus berisi variabel yang disebut goog_cm_deployment_name. Cloud Marketplace menggunakan variabel ini untuk memberi nama deployment pelanggan Anda di halaman deployment mereka. Anda harus menggunakan variabel ini untuk menghindari konflik penamaan resource antara beberapa deployment dalam satu project. Sebagai contoh, lihat goog_cm_deployment_name di contoh modul Terraform kustom.

  • Dalam file metadata.display.yaml, Anda harus menentukan ET_GCE_DISK_IMAGE sebagai jenis xGoogleProperty untuk semua variabel gambar. Sebagai contoh, lihat metadata.display.yaml di contoh modul Terraform kustom.

  • Jika produk Anda berisi image multi-VM atau image yang mendukung beberapa arsitektur CPU, Anda harus menambahkan enumValueLabels agar pelanggan dapat memilih image VM yang ingin mereka gunakan. Sebagai contoh, lihat contoh modul Terraform kustom.

  • Modul Anda tidak boleh bergantung pada dukungan untuk penyedia Terraform.

Langkah tambahan untuk modul Terraform kustom

Jika memilih untuk menggunakan modul Terraform kustom, Anda harus menyelesaikan langkah-langkah tambahan berikut untuk mengonfigurasi image VM untuk deployment:

  1. Di Producer Portal, buka bagian Paket deployment.

  2. Di bagian Konfigurasi Terraform, di bagian Image Variables, klik Add variable.

    Untuk mengaktifkan deployment Terraform produk, Anda harus mengaktifkan penggunaan image milik Marketplace. Cloud Marketplace menggunakan variabel yang Anda tambahkan di sini untuk menukar VM image versi milik Marketplace saat pelanggan men-deploy produk Anda.

  3. Di kolom teks Image Variable, masukkan nama untuk variabel Anda, seperti "image".

  4. Dalam modul Terraform kustom, tetapkan nilai default variabel yang Anda buat di langkah sebelumnya ke nama image VM untuk produk Anda, dalam format projects/YOUR_PROJECT/global/images/YOUR_IMAGE.

  5. Di bagian Tentukan lokasi objek GCS Anda, klik Browse.

    Jika Anda telah membuat bucket Cloud Storage, pilih bucket tersebut di sini.

    Jika Anda tidak memiliki bucket Cloud Storage, klik ikon berlabel Buat bucket baru. Saat membuat bucket baru, Anda:

    • Pilih nama untuk bucket.

    • Tentukan region tempat bucket menyimpan data.

    • Tentukan class penyimpanan untuk data Anda.

    • Tentukan tingkat perincian yang akan diterapkan ke izin Identity and Access Management (IAM) untuk data bucket.

    • Konfigurasikan setelan lanjutan opsional, seperti enkripsi atau kebijakan retensi data.

  6. Pastikan Pembuatan Versi Objek diaktifkan untuk bucket Cloud Storage Anda.

  7. Untuk menyimpan setelan bucket dan melanjutkan konfigurasi paket deployment, klik Configure.

  8. Di bagian Peran yang diperlukan, tentukan peran IAM yang harus dimiliki pelanggan Anda untuk men-deploy produk Anda.

(Khusus deployment UI) Membuat metadata untuk modul Terraform kustom

Agar modul kustom dapat mendukung deployment UI, Anda harus membuat dan menambahkan metadata yang digunakan Cloud Marketplace untuk mengurai modul dengan benar dan merendernya di UI untuk pelanggan.

Untuk membuat dan menambahkan metadata ini, Anda dapat menggunakan alat CFT CLI open source. Untuk menggunakan CFT guna membuat dan menambahkan metadata ke modul kustom, selesaikan langkah-langkah berikut:

  1. Instal alat CFT CLI. Untuk informasi selengkapnya, buka dokumentasi CFT CLI. Sebaiknya tetapkan nilai VERSION menjadi latest, dan tetapkan PLATFORM ke salah satu nilai berikut:

    • linux

    • windows

    • darwin

  2. Jalankan perintah berikut:

     cft blueprint metadata -p TF_PACKAGE_PATH -q -d --nested=false
    

    Pada perintah sebelumnya, flag -p memberikan jalur untuk paket Terraform, flag -q menghasilkan metadata tanpa memerlukan informasi untuk repositori jarak jauh, flag -d menghasilkan file metadata.display.yaml, dan flag --nested=false menghasilkan metadata untuk modul root, yang melewati modul apa pun di folder modules/.

Setelah Anda menyelesaikan langkah-langkah sebelumnya, alat CFT CLI akan membuat dua file baru: metadata.yaml dan metadata.display.yaml.

Menyesuaikan metadata modul Terraform kustom

Cloud Marketplace menggunakan file metadata.display.yaml untuk menyesuaikan formulir yang digunakan pelanggan untuk men-deploy produk Anda melalui UI. Jika ingin menyesuaikan formulir ini, setelah membuat metadata, Anda dapat mengubah nilai kolom di metadata.display.yaml. Untuk mengetahui detail opsi penyesuaian yang tersedia, buka dokumentasi BlueprintUI open source, atau lihat skema BlueprintUI.

Sebaiknya gunakan ekstensi GooglePropertyExtensions untuk mengubah metadata. GooglePropertyExtensions memungkinkan Anda menggunakan validasi khusus Google Cloud, seperti mewajibkan pelanggan untuk hanya memilih jaringan Virtual Private Cloud (VPC) yang sudah ada di project mereka. Sebagai contoh, lihat contoh modul Terraform kustom.

Memvalidasi metadata modul kustom

Untuk memvalidasi metadata modul kustom, jalankan perintah berikut:

cft blueprint metadata -p TF_PACKAGE_PATH -v

Pada perintah sebelumnya, flag -p memberikan jalur untuk paket Terraform, dan flag -v memvalidasi semua file metadata di jalur yang disediakan berdasarkan skema BlueprintMetadata.

Menguji apakah modul Anda lulus verifikasi

Modul kustom Anda lulus verifikasi jika perintah berikut berhasil dijalankan:

terraform plan -var project_id=YOUR_PROJECT -var-file marketplace_test.tfvars

Dalam perintah sebelumnya, marketplace_test.tfvars adalah file variabel Terraform yang hanya digunakan Cloud Marketplace, semata-mata untuk verifikasi modul ini. Jika template Anda mendeklarasikan variabel yang tidak memiliki nilai default, dan Anda tidak menetapkan nilai untuk variabel tersebut, perintah tidak akan berhasil berjalan. Untuk memastikan perintah berhasil berjalan, Anda dapat membuat file marketplace_test.tfvars untuk menetapkan nilai bagi variabel yang dideklarasikan template. Untuk contoh file marketplace_test.tfvars, lihat contoh modul Terraform kustom.

(Opsional) (Khusus deployment CLI) Menyertakan modul pengujian

Secara opsional, jika modul kustom Anda mendukung deployment CLI, Anda dapat memilih untuk menyertakan folder bernama examples/marketplace_test. Anda mungkin ingin melakukannya jika produk Anda perlu menyertakan modul pengujian terpisah untuk memverifikasi kemampuannya. Jika Anda menyertakan folder ini, agar modul Anda lulus verifikasi, perintah berikut harus berhasil dijalankan:

terraform -chdir=examples/marketplace_test plan -var project_id=YOUR_PROJECT

Memvalidasi dan menguji deployment

Setelah membuat dan mengonfigurasi paket deployment, Anda harus memvalidasi dan mengujinya sebelum tim Cloud Marketplace dapat meninjau dan menyetujuinya.

  1. Di Producer Portal, buka bagian Paket deployment.

  2. Klik Validasi. Proses validasi dapat memerlukan waktu hingga dua jam untuk selesai, dan Anda dapat keluar dari layar saat proses berjalan.

  3. Setelah validasi berhasil diselesaikan, klik Pratinjau deployment untuk menguji deployment Anda.

Langkah selanjutnya

Setelah berhasil memvalidasi dan menguji deployment, Anda dapat mengklik Publikasikan untuk mengirimkan keseluruhan produk Anda untuk ditinjau dan dipublikasikan di Cloud Marketplace. Untuk mengetahui detailnya, lihat Mengirimkan produk Anda.