Membuat konfigurasi Terraform
Saat menyeleksi solusi Katalog Layanan untuk organisasi Anda, Anda dapat membuat konfigurasi Terraform, atau config, yang di-deploy pengguna Anda menggunakan Terraform. Setelah membuat konfigurasi, Anda dapat membagikannya kepada pengguna dengan menetapkannya ke katalog.
Dalam panduan ini, Anda akan menggunakan Cloud Build untuk menjalankan perintah Terraform dalam image Docker Terraform versi terbaru, dan Anda akan menggunakan Cloud Storage untuk menyimpan dan mengelola resource Terraform seperti modul dan file status.
Untuk mengetahui resource dan panduan tentang cara menggunakan Terraform, lihat Menggunakan Terraform dengan Google Cloud.
Sebelum memulai
Anda harus memiliki peran Identity and Access Management (IAM) berikut:
- Admin Katalog ATAU Pengelola Katalog untuk Google Cloud organisasi yang terkait dengan Google Cloud project yang telah mengaktifkan Service Catalog. Jika Anda tidak memiliki peran ini, hubungi Administrator Organisasi Anda untuk meminta akses.
- Storage Admin untuk project Google Cloud tempat Anda ingin membuat solusi. Jika konfigurasi Terraform Anda berada di project lain, Anda juga harus memiliki peran Admin Storage untuk project yang berisi konfigurasi Terraform Anda.
- Cloud Build Editor untuk project Google Cloud tempat Anda ingin membuat solusi.
Jika berencana menggunakan akun layanan Anda sendiri, Anda juga harus memiliki peran Pengguna Akun Layanan untuk project Google Cloud yang berisi akun layanan yang akan Anda gunakan.
Jika Anda tidak memiliki peran ini, hubungi Organization Administrator Anda untuk meminta akses.
Jika Anda berencana menggunakan akun layanan Anda sendiri, akun layanan Anda harus memiliki peran IAM berikut:
- Storage Admin untuk project Google Cloud tempat Anda ingin membuat solusi. Jika konfigurasi Terraform Anda berada dalam project yang berbeda, akun layanan Anda juga harus memiliki peran Storage Object Viewer untuk project yang berisi konfigurasi Terraform.
- Logs Writer untuk Google Cloud project tempat Anda ingin membuat solusi.
Jika Anda tidak memiliki peran ini, hubungi Organization Administrator Anda untuk meminta akses.
Siapkan Cloud Build di project tempat Anda membuat konfigurasi:
-
Aktifkan Cloud Build API.
Mengaktifkan API akan otomatis membuat akun layanan Cloud Build yang Anda gunakan pada langkah berikutnya.Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran. - Buka halaman Cloud Build.
- Di Panel Kiri, pilih Setelan.
- Gunakan akun layanan yang disediakan di bagian Service account email.
- Jika Anda tidak menggunakan akun layanan Anda sendiri, berikan peran IAM berikut ke akun layanan. Untuk mengetahui langkah-langkah pemberian peran, lihat Mengonfigurasi akses untuk Akun Layanan Cloud Build.
- Project Editor
(
roles/editor) - Storage Admin
(
roles/storage.admin)
- Project Editor
(
-
Mengupload file konfigurasi ke Cloud Storage
Anda menggunakan Cloud Storage untuk mengelola file konfigurasi Terraform untuk Service Catalog.
Membuat bucket Cloud Storage
Untuk menyiapkan Cloud Storage, buat bucket di project yang sama tempat Anda mengaktifkan Service Catalog untuk organisasi Anda:
- Di konsol Google Cloud , buka halaman Buckets Cloud Storage.
- Klik Create.
- Di halaman Buat bucket, masukkan informasi bucket Anda. Untuk melanjutkan ke
langkah berikutnya, klik Lanjutkan.
-
Di bagian Mulai, lakukan tindakan berikut:
- Masukkan nama yang unik secara global yang memenuhi persyaratan penamaan bucket.
- Untuk menambahkan
label bucket,
luaskan bagian Label (),
klik add_box
Tambahkan label, lalu tentukan
keydanvalueuntuk label Anda.
-
Di bagian Pilih tempat untuk menyimpan data Anda, lakukan tindakan berikut:
- Pilih Jenis lokasi.
- Pilih lokasi tempat data bucket Anda disimpan secara permanen dari menu drop-down Location type.
- Jika memilih jenis lokasi dual-region, Anda juga dapat memilih untuk mengaktifkan replikasi turbo dengan menggunakan kotak centang yang relevan.
- Untuk menyiapkan replikasi lintas bucket, pilih
Add cross-bucket replication via Storage Transfer Service dan
ikuti langkah-langkah berikut:
Menyiapkan replikasi lintas bucket
- Di menu Bucket, pilih bucket.
Di bagian Setelan replikasi, klik Konfigurasi untuk mengonfigurasi setelan bagi tugas replikasi.
Panel Konfigurasi replikasi lintas bucket akan muncul.
- Untuk memfilter objek yang akan direplikasi menurut awalan nama objek, masukkan awalan yang ingin Anda sertakan atau kecualikan objeknya, lalu klik Tambahkan awalan.
- Untuk menetapkan kelas penyimpanan bagi objek yang direplikasi, pilih kelas penyimpanan dari menu Kelas penyimpanan. Jika Anda melewati langkah ini, objek yang direplikasi akan menggunakan kelas penyimpanan bucket tujuan secara default.
- Klik Done.
-
Di bagian Choose how to store your data, lakukan tindakan berikut:
- Pilih kelas penyimpanan default untuk bucket atau Autoclass untuk pengelolaan kelas penyimpanan otomatis untuk data bucket Anda.
- Untuk mengaktifkan namespace hierarkis, di bagian Optimalkan penyimpanan untuk beban kerja intensif data, pilih Aktifkan namespace hierarkis di bucket ini.
- Di bagian Pilih cara mengontrol akses ke objek, pilih apakah bucket Anda menerapkan pencegahan akses publik atau tidak, lalu pilih metode kontrol akses untuk objek bucket Anda.
-
Di bagian Pilih cara melindungi data objek, lakukan
tindakan berikut:
- Pilih salah satu opsi di bagian Perlindungan data yang ingin Anda tetapkan untuk bucket Anda.
- Untuk mengaktifkan penghapusan sementara, klik kotak centang Kebijakan penghapusan sementara (Untuk pemulihan data), dan tentukan jumlah hari Anda ingin mempertahankan objek setelah penghapusan.
- Untuk menyetel Pembuatan Versi Objek, klik kotak centang Pembuatan versi objek (Untuk kontrol versi), dan tentukan jumlah maksimum versi per objek dan jumlah hari setelah versi lama berakhir.
- Untuk mengaktifkan kebijakan retensi pada objek dan bucket, klik kotak centang Retensi (Untuk kepatuhan), lalu lakukan hal berikut:
- Untuk mengaktifkan Penguncian Retensi Objek, centang kotak Aktifkan retensi objek.
- Untuk mengaktifkan Bucket Lock, centang kotak Setel kebijakan retensi bucket, lalu pilih satuan waktu dan durasi untuk periode retensi data Anda.
- Untuk memilih cara mengenkripsi data objek Anda, luaskan bagian Enkripsi data (), lalu pilih metode Enkripsi data.
- Pilih salah satu opsi di bagian Perlindungan data yang ingin Anda tetapkan untuk bucket Anda.
-
Di bagian Mulai, lakukan tindakan berikut:
- Klik Create.
Mengaktifkan Pembuatan Versi Objek
Anda harus menggunakan Pembuatan Versi Objek untuk bucket Anda guna melindungi konfigurasi Terraform Anda agar tidak dihapus atau ditimpa. Untuk mengaktifkan Pembuatan Versi Objek, lihat dokumentasi Cloud Storage tentang Menggunakan Pembuatan Versi Objek.
Memberikan akses ke bucket Anda
Saat pengguna di organisasi Anda men-deploy konfigurasi, akun layanan Cloud Build mereka harus memiliki akses baca ke bucket Anda. Jika bucket Anda disimpan di project yang sama dengan tempat pengguna men-deploy konfigurasi, akun layanan sudah memiliki akses ini. Google Cloud
Jika pengguna Anda men-deploy konfigurasi di projectGoogle Cloud yang berbeda, beri akses ke bucket menggunakan salah satu metode berikut:
Berikan peran Storage Object Viewer (
roles/storage.objectViewer) kepada akun layanan Cloud Build pengguna Anda, atau ke Google Cloud resource tempat pengguna Anda men-deploy konfigurasi Terraform, seperti project, folder, atau organisasi.Gunakan Daftar Kontrol Akses (ACL) untuk mengelola akses ke bucket.
Untuk mengetahui detail tentang cara mengelola akses ke bucket, lihat Ringkasan kontrol akses Cloud Storage.
Membuat dan mengupload modul Terraform
Setelah menyiapkan bucket Cloud Storage, Anda harus membuat dan mengupload modul Terraform, yang merupakan container dari semua file konfigurasi Anda. Service Catalog menggunakan modul untuk otomatis membuat file skema JSON guna menentukan variabel konfigurasi Anda.
Saat memanggil modul di luar direktori saat ini, gunakan
jalur jarak jauh, bukan jalur relatif. Misalnya, gunakan source = "GoogleCloudPlatform/cloud-run/google", bukan source = "../../".
Untuk modul kasus penggunaan umum Google Cloud , lihat Blueprint dan modul Terraform untuk Google Cloud.
Contoh kode berikut menggambarkan file konfigurasi Terraform, main.tf:
variable "machine_type" {
type = string
default = "n1-standard-1"
}
variable "zone" {
type = string
default = "us-central1-a"
}
variable "deployment_identifier" {
description = "The unique name for your instance"
type = string
}
resource "google_compute_instance" "default" {
name = "vm-${var.deployment_identifier}"
machine_type = var.machine_type
zone = var.zone
boot_disk {
device_name = "boot"
auto_delete = true
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
// Ephemeral IP
}
}
}
Setelah membuat modul, kompresi file menjadi file zip. Pastikan modul disimpan di root file zip.
Untuk memastikan penyimpanan modul yang tepat saat Anda mengompresi file Terraform, jalankan perintah berikut:
none
zip solution.zip file1.tf file2.tf file3.tf
Kemudian, upload file zip ke bucket Anda. Untuk mengetahui langkah-langkah mengupload file ZIP, lihat dokumentasi Cloud Storage tentang Mengupload objek.
Membuat konfigurasi di Service Catalog
Setelah menyiapkan bucket Cloud Storage dengan modul Terraform, Anda membuat solusi Katalog Layanan yang menyertakan bucket tersebut.
Untuk membuat konfigurasi Terraform sebagai solusi Katalog Layanan:
Buka halaman Service Catalog Admin Solutions di konsol Google Cloud .
Buka halaman SolusiUntuk memilih Google Cloud project, klik Pilih.
Klik Buat solusi. Di menu drop-down, pilih Create Terraform config.
Masukkan nama, deskripsi, dan tagline untuk konfigurasi Terraform Anda. Tagline adalah deskripsi singkat solusi yang dilihat pengguna saat menjelajahi Katalog Layanan.
Di kolom Link ke konfigurasi Terraform, berikan link ke bucket Cloud Storage yang berisi file ZIP untuk modul Terraform Anda, seperti
gs://my-terraform-bucket/my-zip-file.zip.Jika perlu, upload ikon untuk solusi. Dimensi yang direkomendasikan untuk ikon adalah 80 x 80 piksel.
Jika mau, masukkan link dukungan dan informasi kontak untuk kreator.
Secara opsional, tambahkan link ke dokumentasi untuk solusi.
Pilih versi Terraform yang ingin Anda gunakan untuk men-deploy solusi.
Secara opsional, Anda dapat memberikan akun layanan Anda sendiri dengan mencentang kotak di samping Pilih atau masukkan akun layanan Anda sendiri. Jika akun layanan Anda berada di project yang sama dengan tempat Anda membuat solusi, pilih Pilih akun layanan dari project saat ini, lalu pilih akun layanan Anda dari menu drop-down. Google Cloud Jika akun layanan Anda berada di project yang berbeda Google Cloud dari solusi Anda, pilih Masukkan email akun layanan dari project mana pun, lalu masukkan email akun layanan Anda.
Klik BUAT.
Solusi dibuat dan muncul di halaman Solusi Admin Katalog Layanan.
Screenshot berikut mengilustrasikan pembuatan konfigurasi Terraform:
Langkah berikutnya
- Tetapkan konfigurasi Terraform ke katalog, sehingga pengguna di organisasi Anda dapat mengakses dan men-deploy solusi.
- Perbarui solusi dengan detail konfigurasi Terraform terbaru.