Anda dapat mengonfigurasi pipeline Image Builder otomatis yang berjalan setiap kali Anda mengirim perubahan konfigurasi ke repositori Git, seperti mengirim ke main.
Mengotomatiskan build pada peristiwa repositori memastikan bahwa Cloud Build segera memvalidasi, membangun, dan memublikasikan image OS kustom Anda ke Compute Engine dan Artifact Registry setelah peninjauan atau penggabungan kode.
Sebelum memulai
- Selesaikan langkah-langkah penyiapan lingkungan di Menyiapkan lingkungan Anda.
- Jika Anda ingin men-deploy pipeline menggunakan Terraform atau mengotomatiskan build dari repositori, hubungkan repositori GitHub, GitLab, atau Bitbucket menggunakan repositori Cloud Build (
2nd gen) atau link koneksi Developer Connect. - Pastikan repositori Anda berisi
file orkestrasi
cloudbuild.yaml, file resepimagebuilder.yaml, dan skrip build yang dirujuk. - Jika Anda berencana menggunakan Terraform, instal Terraform CLI versi 1.3 atau yang lebih baru.
-
Siapkan autentikasi jika Anda belum melakukannya.
Autentikasi memverifikasi identitas Anda untuk mengakses layanan Cloud de Confiance by S3NS dan API. Untuk menjalankan
kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke
Compute Engine dengan memilih salah satu opsi berikut:
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
gcloud
-
Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud init
-
- Tetapkan region dan zona default.
-
Instal Google Cloud CLI.
-
Konfigurasi gcloud CLI agar menggunakan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Login ke gcloud CLI dengan identitas gabungan Anda.
-
Buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Terraform
Untuk menggunakan contoh Terraform di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk membuat pemicu peristiwa repositori, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:
- Editor Cloud Build (
roles/cloudbuild.builds.editor) - Service Account User (
roles/iam.serviceAccountUser)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mengonfigurasi otomatisasi repositori
Anda dapat mengonfigurasi pemicu peristiwa repositori menggunakan gcloud CLI atau Terraform. Pilih salah satu tab berikut untuk mengonfigurasi pemicu repositori:
gcloud
Anda dapat membuat pemicu repositori otomatis menggunakan perintah gcloud builds
triggers create dan
menunjuk langsung ke link repositori generasi ke-2 yang terhubung (--repository).
gcloud builds triggers create repository \
--name="TRIGGER_NAME" \
--repository="projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME" \
--branch-pattern="^main$" \
--build-config="CLOUDBUILD_YAML_PATH" \
--service-account="projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL" \
--substitutions="_GCS_WORKDIR=gs://STAGING_BUCKET/workdir/,_IMAGE_BUILDER_CONFIG_PATH=RECIPE_PATH,_SERVICE_ACCOUNT=projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL,_IMAGE_OUTPUT_PATH=image-builder/binaryOut" \
--region=REGION \
--project=PROJECT_ID
Ganti kode berikut:
TRIGGER_NAME: nama pemicu Anda, misalnya,git-push-custom-os-builder.PROJECT_ID: project ID Anda.REGION: region tempat koneksi repositori Anda dihosting dan tempat tugas pipeline penyesuaian image berjalan, misalnya,us-central1.CONNECTION_NAME: nama koneksi Developer Connect Anda, misalnya,github-connection.REPO_NAME: nama repositori Git yang ditautkan.CLOUDBUILD_YAML_PATH: jalur relatif kecloudbuild.yamldi direktori lokal Anda.SERVICE_ACCOUNT_EMAIL: alamat email yang tepat dari akun layanan build Anda.STAGING_BUCKET: nama bucket penyiapanworkdirCloud Storage Anda.RECIPE_PATH: jalur relatif keimagebuilder.yamldi repositori Anda.
Terraform
Untuk mengonfigurasi pemicu repositori otomatis menggunakan Terraform, selesaikan langkah-langkah berikut:
Tambahkan resource pemicu ke file konfigurasi
main.tfAnda:resource "google_cloudbuild_trigger" "repository_trigger" { name = "TRIGGER_NAME" location = "REGION" project = "PROJECT_ID" description = "Triggers custom OS image builds on repository push events" repository_event_config { repository = "projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME" push { branch = "^main$" } } filename = "CLOUDBUILD_YAML_PATH" substitutions = { _GCS_WORKDIR = "gs://STAGING_BUCKET/workdir/" _IMAGE_BUILDER_CONFIG_PATH = "RECIPE_PATH" _SERVICE_ACCOUNT = "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL" } }Ganti kode berikut:
TRIGGER_NAME: nama pemicu Anda, misalnya,git-push-custom-os-builder.PROJECT_ID: project ID Anda.REGION: Cloud de Confiance region tempat koneksi repositori Anda dihosting, misalnya,us-central1.CONNECTION_NAME: nama koneksi Developer Connect Anda, misalnya,github-connection.REPO_NAME: nama repositori Git yang ditautkan.CLOUDBUILD_YAML_PATH: jalur relatif kecloudbuild.yamldi direktori lokal Anda.STAGING_BUCKET: nama bucket penyiapan Cloud Storage Anda.RECIPE_PATH: jalur relatif keimagebuilder.yamldi repositori Anda.SERVICE_ACCOUNT_EMAIL: alamat email akun layanan build Anda.
Deploy konfigurasi Terraform yang telah diperbarui:
terraform plan terraform apply
Untuk meninjau struktur project infrastruktur Terraform multi-file yang lengkap, lihat Membuat dan mengelola pipeline menggunakan Terraform.
Langkah berikutnya
- Pelajari cara Menjadwalkan pembuatan image OS kustom secara berkala untuk penerapan patch keamanan menggunakan Cloud Scheduler.
- Jelajahi Tindakan penyesuaian yang didukung
(
Shell,FileCopy,UpdateKernelCommandLine,InstallGPU).