אתם יכולים לתזמן הפעלות חוזרות של Image Builder באמצעות Cloud Scheduler וטריגרים לפיתוח גרסת Build של Cloud Build. כשמתזמנים פיתוחים של קובצי אימג' בהתאמה אישית של מערכת ההפעלה, Cloud Build מעדכן באופן אוטומטי את קובצי האימג' הבסיסיים באמצעות תיקונים של מערכת ההפעלה ומדיניות האבטחה של הארגון, בלי צורך בהתערבות ידנית.
לפני שמתחילים
- מבצעים את השלבים להגדרת הסביבה שמפורטים בקטע הכנת הסביבה.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, צרו פרטי כניסה לאימות מקומי בחשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אתם לא צריכים לעשות את זה.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
המשך
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Go שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת טריגרים ולתזמון של גרסאות build, בקשו מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
- עריכה ב-Cloud Build (
roles/cloudbuild.builds.editor) - מפעיל משימות ב-Cloud Scheduler (
roles/cloudscheduler.jobRunner) או אדמין ב-Cloud Scheduler (roles/cloudscheduler.admin) - משתמש בחשבון שירות (
roles/iam.serviceAccountUser)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
יצירת צינור עיבוד נתונים מתוזמן של גרסאות build
אפשר להגדיר יצירת קובצי אימג' חוזרים באמצעות ה-CLI של gcloud או ספריית הלקוח של Go:
gcloud
כדי לתזמן בנייה חוזרת של קובצי אימג' של מערכת ההפעלה באמצעות ה-CLI של gcloud:
מריצים את הפקודה
gcloud builds triggers create manualכדי ליצור טריגר לפיתוח גרסת Build ידני של Cloud Build שמציין את קובץ היעדcloudbuild.yaml. מכיוון ש-Cloud Scheduler מפעיל את הטריגר הזה באופן ידני ולא באירועים של מאגר, אל תציינו מסננים של בקשות דחיפה או משיכה:gcloud builds triggers create manual \ --name="TRIGGER_NAME" \ --region=REGION \ --build-config=CLOUDBUILD_YAML_PATH \ --project=PROJECT_IDמריצים את הפקודה
gcloud builds triggers describeכדי לאחזר את המזהה הייחודי (trigger_id) שנוצר לטריגר החדש:gcloud builds triggers describe TRIGGER_NAME \ --region=REGION \ --format="value(id)" \ --project=PROJECT_IDכדי ליצור משימה ב-Cloud Scheduler ששולחת בקשת
HTTP POSTל-Cloud Build API (projects.locations.triggers.run) בהתאם ללוח הזמנים הנדרש של unix cron, למשל, מדי שבוע בימי שני בשעה 6:00 בבוקר באמצעות'0 6 * * 1', מריצים את הפקודהgcloud 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
מחליפים את מה שכתוב בשדות הבאים:
-
TRIGGER_NAME: השם של הטריגר הידני ל-Cloud Build, לדוגמהweekly-ubuntu-builder. -
REGION: האזור שבו יוצרים את הטריגר, לדוגמהus-central1. -
CLOUDBUILD_YAML_PATH: הנתיב לקובץcloudbuild.yamlבספרייה המקומית, לדוגמהcloudbuild.yaml. PROJECT_ID: מזהה הפרויקט.-
JOB_NAME: השם של משימת ה-cron ב-Cloud Scheduler, לדוגמהweekly-custom-os-patching. -
CRON_SCHEDULE: ביטוי התזמון של cron ב-Unix, לדוגמה'0 6 * * 1'. -
TRIGGER_ID: המזהה הייחודי (trigger_id) שנוצר לטריגר. -
SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות שנותן ל-Cloud Scheduler הרשאה להפעיל את הטריגר. לחשבון השירות הזה נדרשות הרשאותroles/cloudbuild.builds.editor.
המשך
כדי לתזמן צינורות עיבוד נתונים באופן פרוגרמטי באמצעות ספריות הלקוח של Cloud Build ו-Cloud Scheduler Go, משתמשים בפונקציה scheduleBuild.
לפני שמריצים את הקוד לדוגמה, צריך לבצע את הפעולות הבאות:
- מעלים את קובץ התצורה
imagebuilder.yamlלקטגוריה של Cloud Storage, לדוגמהgs://STAGING_BUCKET/imagebuilder.yaml. - נותנים לחשבון השירות של התזמון (
cloud-build-trigger-scheduler@PROJECT_ID.iam.gserviceaccount.com) את התפקיד "עריכה ב-Cloud Build" (roles/cloudbuild.builds.editor) בפרויקט, ואת התפקיד "משתמש בחשבון שירות" (roles/iam.serviceAccountUser) בחשבון השירות שמריץ את ה-build. מידע נוסף זמין במאמר תזמון גרסאות build במסמכי התיעוד של Cloud Build.
המאמרים הבאים
- איך להפוך לאוטומטיים את ה-builds באירועים של מאגרים באירועים של דחיפה, תיוג או מיזוג ב-Git באמצעות Terraform.
- בודקים את סכימת המתכון להתאמה אישית כדי להגדיר חבילות תוכנה ותהליכי אימות.