Anda dapat menjadwalkan eksekusi Image Builder berulang menggunakan pemicu Cloud Scheduler dan Cloud Build. Saat Anda menjadwalkan build image OS kustom, Cloud Build akan otomatis mengupdate image dasar Anda dengan patch sistem operasi dan kebijakan keamanan organisasi tanpa memerlukan intervensi manual.
Sebelum memulai
- Selesaikan langkah-langkah penyiapan lingkungan di Menyiapkan lingkungan Anda.
-
Siapkan autentikasi jika Anda belum melakukannya.
Autentikasi memverifikasi identitas Anda untuk mengakses layanan Google Cloud dan API. Untuk menjalankan
kode atau contoh 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. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:
gcloud initJika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
- Tetapkan region dan zona default.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukannya jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, pastikan Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Go
Untuk menggunakan contoh Go 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 dan menjadwalkan build, minta administrator untuk memberi Anda peran IAM berikut di project Anda:
- Editor Cloud Build (
roles/cloudbuild.builds.editor) - Cloud Scheduler Job Runner (
roles/cloudscheduler.jobRunner) atau Cloud Scheduler Admin (roles/cloudscheduler.admin) - 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.
Membuat pipeline build terjadwal
Anda dapat mengonfigurasi build image berulang menggunakan gcloud CLI atau library klien Go:
gcloud
Untuk menjadwalkan build OS image berulang menggunakan gcloud CLI, selesaikan langkah-langkah berikut:
Buat pemicu Cloud Build manual yang menentukan file
cloudbuild.yamltarget Anda dengan menjalankan perintahgcloud builds triggers create manual. Karena Cloud Scheduler memanggil pemicu ini secara manual, bukan pada peristiwa repositori, jangan tentukan filter push atau permintaan pull:gcloud builds triggers create manual \ --name="TRIGGER_NAME" \ --region=REGION \ --build-config=CLOUDBUILD_YAML_PATH \ --project=PROJECT_IDAmbil ID unik (
trigger_id) yang dibuat untuk pemicu baru Anda dengan menjalankan perintahgcloud builds triggers describe:gcloud builds triggers describe TRIGGER_NAME \ --region=REGION \ --format="value(id)" \ --project=PROJECT_IDUntuk membuat tugas Cloud Scheduler yang mengirim permintaan
HTTP POSTke Cloud Build API (projects.locations.triggers.run) sesuai dengan jadwal cron unix yang Anda perlukan, misalnya, setiap minggu pada hari Senin pukul 06.00 menggunakan'0 6 * * 1', jalankan perintahgcloud scheduler jobs create http:gcloud scheduler jobs create http JOB_NAME \ --schedule="CRON_SCHEDULE" \ --uri="https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/triggers/TRIGGER_ID:run" \ --message-body="{}" \ --oauth-service-account-email="SERVICE_ACCOUNT_EMAIL" \ --location=REGION \ --project=PROJECT_ID
Ganti kode berikut:
TRIGGER_NAME: nama untuk pemicu Cloud Build manual Anda, misalnya,weekly-ubuntu-builder.REGION: region untuk membuat pemicu, misalnya,us-central1.CLOUDBUILD_YAML_PATH: jalur ke filecloudbuild.yamldi direktori lokal Anda, misalnya,cloudbuild.yaml.PROJECT_ID: project ID Anda.JOB_NAME: nama untuk cron job Cloud Scheduler Anda, misalnya,weekly-custom-os-patching.CRON_SCHEDULE: ekspresi jadwal cron unix, misalnya,'0 6 * * 1'.TRIGGER_ID: ID unik (trigger_id) yang dibuat untuk pemicu Anda.SERVICE_ACCOUNT_EMAIL: email akun layanan yang memberi otorisasi kepada Cloud Scheduler untuk memanggil pemicu. Akun layanan ini memerlukan izinroles/cloudbuild.builds.editor.
Go
Untuk menjadwalkan pipeline secara terprogram menggunakan library klien Go Cloud Build dan Cloud Scheduler, gunakan fungsi scheduleBuild.
Sebelum menjalankan contoh ini, selesaikan prasyarat berikut:
- Upload file konfigurasi
imagebuilder.yamlke bucket Cloud Storage Anda, misalnya,gs://STAGING_BUCKET/imagebuilder.yaml. - Berikan akun layanan penjadwalan
cloud-build-trigger-scheduler@PROJECT_ID.iam.gserviceaccount.com, peran Cloud Build Editor (roles/cloudbuild.builds.editor) pada project Anda dan peran Service Account User (roles/iam.serviceAccountUser) pada akun layanan yang menjalankan build. Untuk mengetahui informasi selengkapnya, lihat Menjadwalkan build dalam dokumentasi Cloud Build.
Langkah berikutnya
- Pelajari cara Mengotomatiskan build pada peristiwa repositori pada peristiwa push, tag, atau penggabungan Git menggunakan Terraform.
- Tinjau Skema resep penyesuaian untuk menentukan paket software dan prosedur validasi.