Menyediakan resource Cloud Build dengan Terraform

HashiCorp Terraform adalah alat infrastruktur sebagai kode (IaC) yang memungkinkan Anda menyediakan dan mengelola infrastruktur cloud. Terraform menyediakan plugin yang disebut penyedia yang memungkinkan Anda berinteraksi dengan penyedia cloud dan API lainnya. Anda dapat menggunakan penyedia Terraform untuk Google Cloud guna menyediakan dan mengelola resource Google Cloud , termasuk Cloud Build.

Halaman ini memperkenalkan cara menggunakan Terraform dengan Cloud Build, termasuk pengantar cara kerja Terraform dan beberapa resource untuk membantu Anda mulai menggunakan Terraform dengan Google Cloud. Anda juga akan menemukan link ke dokumen referensi Terraform untuk Cloud Build, contoh kode, dan panduan untuk menggunakan Terraform dalam menyediakan resource Cloud Build.

Untuk mengetahui petunjuk cara mulai menggunakan Terraform untuk Google Cloud, lihat Menginstal dan mengonfigurasi Terraform atau Mulai cepat Terraform untuk Google Cloud .

Cara kerja Terraform

Terraform memiliki sintaksis deklaratif dan berorientasi konfigurasi yang dapat Anda gunakan untuk mendeskripsikan infrastruktur yang ingin Anda sediakan di project Google Cloud Anda. Setelah menulis konfigurasi ini di satu atau beberapa file konfigurasi Terraform, Anda dapat menggunakan Terraform CLI untuk menerapkan konfigurasi ini ke resource Cloud Build Anda.

Langkah-langkah berikut menjelaskan cara kerja Terraform:

  1. Anda menjelaskan infrastruktur yang ingin Anda sediakan dalam file konfigurasi Terraform. Anda tidak perlu menulis kode yang menjelaskan cara menyediakan infrastruktur. Terraform menyediakan infrastruktur untuk Anda.
  2. Anda menjalankan perintah terraform plan, yang mengevaluasi konfigurasi dan membuat rencana eksekusi. Anda dapat meninjau rencana dan melakukan perubahan sesuai kebutuhan.
  3. Anda menjalankan perintah terraform apply, yang melakukan tindakan berikut:

    1. Alat ini menyediakan infrastruktur Anda berdasarkan rencana eksekusi dengan memanggil Cloud Build API yang sesuai di latar belakang.
    2. File ini membuat file status Terraform, yang merupakan file JSON yang memetakan resource dalam file konfigurasi Anda ke resource dalam infrastruktur dunia nyata. Terraform menggunakan file ini untuk mencatat status terbaru infrastruktur Anda, dan untuk menentukan kapan harus membuat, memperbarui, dan menghancurkan resource.
    3. Saat Anda menjalankan terraform apply, Terraform menggunakan pemetaan dalam file status untuk membandingkan infrastruktur yang ada dengan kode, dan melakukan update sesuai kebutuhan:

      • Jika objek resource ditentukan dalam file konfigurasi, tetapi tidak ada dalam file status, Terraform akan membuatnya.
      • Jika objek resource ada dalam file status, tetapi memiliki konfigurasi yang berbeda dari file konfigurasi Anda, Terraform akan memperbarui resource agar sesuai dengan file konfigurasi Anda.
      • Jika objek resource dalam file status cocok dengan file konfigurasi Anda, Terraform tidak akan mengubah resource.

Resource Terraform untuk Cloud Build

Resource adalah elemen dasar dalam bahasa Terraform. Setiap blok resource menjelaskan satu atau beberapa objek infrastruktur, seperti jaringan virtual atau instance komputasi.

Tabel berikut mencantumkan resource Terraform yang tersedia untuk Cloud Build:

Layanan Cloud Build Resource Terraform Sumber data
Cloud Build v1 google_cloudbuild_trigger
Cloud Build v2 google_cloudbuildv2_connection_iam_policy

Panduan berbasis Terraform untuk Cloud Build

Tabel berikut mencantumkan panduan dan tutorial cara penggunaan berbasis Terraform untuk Cloud Build:

Panduan Detail
Menghubungkan ke repositori GitHub Panduan ini menjelaskan cara menghubungkan repositori GitHub ke Cloud Build menggunakan Terraform.
Menghubungkan ke host GitHub Enterprise Panduan ini menjelaskan cara menghubungkan host GitHub Enterprise ke Cloud Build menggunakan Terraform.
Menghubungkan ke repositori GitHub Enterprise Panduan ini menjelaskan cara menghubungkan repositori GitHub Enterprise ke Cloud Build menggunakan Terraform.
Menghubungkan ke host GitLab Enterprise Edition Panduan ini menjelaskan cara menghubungkan host GitLab Enterprise Edition ke Cloud Build menggunakan Terraform.
Menghubungkan ke repositori GitLab Enterprise Edition Panduan ini menjelaskan cara menghubungkan repositori GitLab Enterprise Edition ke Cloud Build menggunakan Terraform.
Menghubungkan ke host Pusat Data Bitbucket Panduan ini menjelaskan cara menghubungkan host Bitbucket Data Center ke Cloud Build menggunakan Terraform.
Menghubungkan ke repositori Pusat Data Bitbucket Panduan ini menjelaskan cara menghubungkan repositori Pusat Data Bitbucket ke Cloud Build menggunakan Terraform.
Menghubungkan ke host Bitbucket Cloud Panduan ini menjelaskan cara menghubungkan host Bitbucket Cloud ke Cloud Build menggunakan Terraform.
Menghubungkan ke repositori Bitbucket Cloud Panduan ini menjelaskan cara menghubungkan repositori Bitbucket Cloud ke Cloud Build menggunakan Terraform.
Deploy ke Compute Engine Panduan ini menjelaskan cara melakukan deployment biru-hijau tanpa downtime di Grup Instance Terkelola (MIG) Compute Engine menggunakan Cloud Build dan Terraform.

Modul dan blueprint Terraform untuk Cloud Build

Modul dan blueprint membantu Anda mengotomatiskan penyediaan dan pengelolaan Google Cloud resource dalam skala besar. Modul adalah kumpulan file konfigurasi Terraform yang dapat digunakan kembali dan membuat abstraksi logis resource Terraform. Blueprint adalah paket modul yang dapat di-deploy dan dapat digunakan kembali, serta kebijakan yang menerapkan dan mendokumentasikan solusi tertentu.

Tabel berikut mencantumkan modul dan blueprint yang terkait dengan Cloud Build:

Modul atau blueprint Detail
Pipeline CI/CD yang aman Modul ini memungkinkan pelanggan men-deploy pipeline CI/CD yang aman dengan cepat, yang menerapkan banyak fungsi yang diuraikan dalam Menguji kemampuan awal keamanan. Google Cloud
terraform-google-bootstrap Modul ini membantu mem-bootstrap Google Cloud organisasi, membuat semua resource dan izin yang diperlukan untuk mulai menggunakan Cloud Foundation Toolkit (CFT). Untuk pengguna yang ingin menggunakan Cloud Build dan Cloud Source Repositories untuk kode dasar, modul ini berisi submodul yang mem-bootstrap semua resource yang diperlukan.

Langkah berikutnya