תזמון משימות של עדכון

בנוסף להפעלה של משימות תיקון לפי דרישה, יכול להיות שתרצו ליצור פריסת תיקונים כדי להפעיל משימות תיקון באופן אוטומטי לפי לוח זמנים מוגדר.

לכל פריסת תיקון יכול להיות לוח זמנים חד-פעמי, שבו משימת התיקון פועלת בתאריך ובשעה ספציפיים, או לוח זמנים חוזר, שבו משימת התיקון פועלת במרווח זמן מסוים.

מסנני מכונות מאפשרים לתקן כמה מכונות בו-זמנית. המסננים האלה מופעלים על כל משימת תיקון בנפרד בזמן שהיא פועלת. כך אפשר לוודא שהשינויים בפרויקט נשמרים בזמן אמת. לדוגמה, נניח שנוצרת פריסת תיקונים כדי להחיל תיקונים על כל המכונות באזור asia-souteast1-b החל מעוד שבועיים. בזמן שיצרתם את התיקון היו לכם 20 מכונות באזור, אבל כמה ימים אחר כך נוספו לאזור 40 מכונות חדשות. המסנן מופעל כשהתיקון מתחיל, ולכן כל 60 המכונות מתעדכנות. כך אפשר להוסיף ולהסיר מכונות בלי לעדכן את לוח הזמנים של פריסת התיקונים.

לפני שמתחילים

  • בודקים את המכסות של OS Config.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל.
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

אפשר לתזמן את הטמעת התיקונים באמצעות מסוףGoogle Cloud , Google Cloud CLI או REST.

הרשאות

לבעלים של פרויקט יש גישה מלאה ליצירה ולניהול של פריסות תיקונים. לכל שאר המשתמשים צריך להעניק הרשאות. אפשר להקצות אחד מהתפקידים המפורטים הבאים:

  • ‫roles/osconfig.patchDeploymentAdmin: מכיל הרשאות ליצירה, למחיקה, לקבלה ולרשימה של פריסות תיקונים.
  • roles/osconfig.patchDeploymentViewer: מכיל הרשאות גישה לקריאה בלבד כדי לקבל ולפרט פריסות של תיקונים.

לדוגמה, כדי לתת למשתמש גישת אדמין לפריסות של תיקונים, מריצים את הפקודה הבאה:

gcloud projects add-iam-policy-binding project-id \
    --member user:user-id@gmail.com \
    --role roles/osconfig.patchDeploymentAdmin

מחליפים את מה שכתוב בשדות הבאים:

  • ‫project-id: מזהה הפרויקט.
  • user-id: שם המשתמש של המשתמש ב-Google Workspace.

יצירת פריסת תיקון

כשיוצרים פריסת תיקון, השם של פריסת התיקון צריך לעמוד בדרישות הבאות:

  • כל שם חייב להיות ייחודי בפרויקט
  • הוא יכול לכלול רק אותיות קטנות, מספרים ומקפים.
  • להתחיל באות
  • להסתיים במספר או באות
  • להכיל בין תו אחד ל-63 תווים

ב-Google Cloud CLI וב-REST, השם של פריסת התיקון נקרא patch-deployment-id.

אחרי שמתחילים פריסת תיקון, אפשר לעקוב אחרי התיקונים באמצעות לוח הבקרה של התיקונים. הנתונים יופיעו במרכז הבקרה כ-30 דקות אחרי שתתחילו את משימת התיקון.

console

  1. במסוף Google Cloud , נכנסים לדף Compute Engine > ‏VM Manager > ‏Patch.

    כניסה לדף Patch

  2. לוחצים על New patch deployment.
  3. בקטע Target VMs, בוחרים את האזור שבו נמצאות המכונות הווירטואליות שרוצים לעדכן. אפשר גם לבחור את כל האזורים.

    לדוגמה, כדי לתקן מכונות וירטואליות ספציפיות באזורים שבחרתם, הזינו את מסנני השם והתווית באופן דומה לדוגמה הבאה:

    • תחילית שם: test-
    • תוויות: env=dev ו-app=web
  4. בקטע Patch configuration, מגדירים את התיקון.

    1. מציינים שם לתיקון.
    2. בוחרים את העדכונים הנדרשים למערכת ההפעלה. מידע נוסף זמין במאמר מה כוללת משימת תיקון של מערכת ההפעלה.
  5. בקטע תזמון, מבצעים את הפעולות הבאות:

  6. בקטע Rollout options, מגדירים את האפשרויות להשקת התיקון:

    • בוחרים אם לתקן אזור אחד בכל פעם או לתקן אזורים בו-זמנית.
    • הגדרת תקציב לשיבושים. תקציב ההפרעה הוא המספר או האחוז של המכונות הווירטואליות באזור שאתם רוצים שיופרעו בו-זמנית על ידי תהליך התיקון.
  7. (אופציונלי) בקטע Advanced options, אתם יכולים לבצע את הפעולות הבאות:

  8. לוחצים על Deploy.

gcloud

כדי ליצור פריסת תיקון, משתמשים בפקודה os-config patch-deployments create.

gcloud compute os-config patch-deployments create patch-deployment-id \
    --file patch-deployment-file

מחליפים את מה שכתוב בשדות הבאים:

  • ‫patch-deployment-id: השם של פריסת התיקון.
  • ‫patch-deployment-file: הנתיב לקובץ YAML או JSON שמכיל את ההגדרות לפריסת התיקון.

קובצי YAML לדוגמה של פריסת תיקונים

אפשר להשתמש בקובץ ה-YAML לדוגמה הבא כדי ליצור לוח זמנים חוזר לכל המכונות באזורים us-west2-b ו-us-west2-c. התזמון החוזר כולל את המאפיינים הבאים:

  • תאריך ההתחלה הוא 9 בינואר 2019 בשעה 19:30
  • תאריך הסיום הוא 9 בינואר 2020 בשעה 19:30
  • אזור הזמן שצריך להשתמש בו הוא "America/Los_Angeles"
  • פועל כל שבוע ביום שלישי
instanceFilter:
  zones:
  - us-west2-b
  - us-west2-c
recurringSchedule:
  frequency: WEEKLY
  weekly:
    dayOfWeek: TUESDAY
  timeOfDay:
    hours: 19
    minutes: 30
  timeZone:
    id: America/Los_Angeles
  startTime: '2019-09-01T12:00:00Z'
  endTime: '2020-09-01T12:00:00Z'

REST

ב-API, יוצרים בקשת POST כדי ליצור פריסת תיקון חדשה. אתם צריכים להגדיר באופן מפורש את כל שדות התצורה הנדרשים, כמו שמתואר במאמרי העזרה של ה-API של patchDeployments.create. לדוגמה, פריסת תיקון עם שדות החובה המינימליים (מסנן מכונות ותזמון) נראית כך: מחליפים את project-id במזהה הפרויקט.

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "instanceFilter": instance-filter

  // Add one of the following parameters:
  "recurringSchedule": schedule
  "oneTimeSchedule": schedule
}

מחליפים את מה שכתוב בשדות הבאים:

  • ‫project-id: מזהה הפרויקט.
  • ‫instance-filter: הפרמטרים של הסינון שרוצים להגדיר. למידע נוסף על מסנני מכונות, ראו מסנני מכונות.
  • ‫schedule: צריך לציין את הפרמטר oneTimeSchedule או recurringSchedule שמפרט את הפרמטרים של התזמון, כמו תאריך, שעה ותדירות להרצת הטמעת התיקון.

דוגמאות

דוגמה 1: יצירת לוח זמנים חד-פעמי להרצת משימת תיקון ב-10 בינואר 2020 בשעה 12:00 לפי שעון UTC, בכל המכונות באזורים us-west2-b ו-us-west2-c.

{
 "instanceFilter":{
   "zones":[
     "us-west2-b",
     "us-west2-c"
   ]
 },
 "oneTimeSchedule": {
   "executeTime": "2020-01-10T00:00:00Z"
 }
}

דוגמה 2: יצירת לוח זמנים חוזר לכל המכונות באזורים us-west2-b ו-us-west2-c. התזמון החוזר כולל את המאפיינים הבאים:

  • תאריך ההתחלה הוא 9 בינואר 2019 בשעה 19:30
  • תאריך הסיום הוא 9 בינואר 2020 בשעה 19:30
  • אזור הזמן שצריך להשתמש בו הוא "America/Los_Angeles"
  • פועל כל שבוע ביום שלישי
POST https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments
{
  "instanceFilter":{
    "zones":[
      "us-west2-b",
      "us-west2-c"
    ]
  },
  "recurringSchedule":{
    "frequency":"WEEKLY",
    "weekly":{
      "dayOfWeek":"TUESDAY"
    },
    "timeOfDay":{
      "hours":19,
      "minutes":30
    },
    "timeZone":{
      "id":"America/Los_Angeles"
    },
    "startTime":"2019-09-01T12:00:00Z",
    "endTime":"2020-09-01T12:00:00Z"
  }
}

הצגת רשימה של פריסות תיקונים

console

  1. במסוף Google Cloud , נכנסים לדף Compute Engine > ‏VM Manager > ‏Patch.

    כניסה לדף Patch

  2. לוחצים על הכרטיסייה פריסות מתוזמנות.

gcloud

משתמשים בפקודה os-config patch-deployments list כדי להציג את פריסות התיקונים.

gcloud compute os-config patch-deployments list

הפקודה הזו מחזירה את כל פריסות התיקונים. הפלט אמור להיראות כך:

NAME              LAST_RUN                  NEXT_RUN              FREQUENCY
first-deployment  2019-12-18T00:07:00.738Z  ---                   Once: Scheduled for 2019-12-18T00:07:00.000Z
my-deployment1    2020-01-05T14:00:00.228Z  2020-01-12T14:00:00Z  Recurring - Weekly
my-deployment2    ---                       2020-01-15T05:30:00Z  Recurring - Monthly on specific date(s)

אתם יכולים להשתמש בדגלים נוספים כדי להגביל ולעצב את החיפוש. לדוגמה, כדי להציג את 10 פריסות התיקונים הראשונות בדפים של 2, מריצים את הפקודה הבאה. מחליפים את project-id במזהה הפרויקט.

gcloud compute os-config patch-deployments list --limit 10 --page-size 2

REST

ב-API, יוצרים בקשת GET ל-method‏ patchDeployments.list. מחליפים את project-id במזהה הפרויקט.

GET https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments

תיאור של פריסת תיקון

console

  1. במסוף Google Cloud , נכנסים לדף Compute Engine > ‏VM Manager > ‏Patch.

    כניסה לדף Patch

  2. לוחצים על הכרטיסייה פריסות מתוזמנות.
  3. לוחצים על שם הפריסה שרוצים לבדוק.

gcloud

משתמשים בפקודה os-config patch-deployments describe כדי לתאר פריסת תיקון. מחליפים את patch-deployment-id בשם של פריסת התיקון.

gcloud compute os-config patch-deployments describe patch-deployment-id

REST

ב-API, יוצרים בקשת GET ל-method‏ patchDeployments.get.

GET https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments/patch-deployment-id

מחליפים את מה שכתוב בשדות הבאים:

  • ‫project-id: מזהה הפרויקט.
  • ‫patch-deployment-id: השם של פריסת התיקון.

מחיקת פריסת תיקון

console

  1. במסוף Google Cloud , נכנסים לדף Compute Engine > ‏VM Manager > ‏Patch.

    כניסה לדף Patch

  2. לוחצים על הכרטיסייה פריסות מתוזמנות.
  3. לוחצים על שם הפריסה שרוצים למחוק.
  4. לוחצים על מחיקת לוח הזמנים הזה.

gcloud

כדי למחוק פריסת תיקון, משתמשים בפקודה os-config patch-deployments delete. מחליפים את patch-deployment-id בשם של פריסת התיקון.

gcloud compute os-config patch-deployments delete patch-deployment-id

REST

ב-API, יוצרים בקשת DELETE ל-method‏ patchDeployments.delete.

DELETE https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments/patch-deployment-id

מחליפים את מה שכתוב בשדות הבאים:

  • ‫project-id: מזהה הפרויקט.
  • ‫patch-deployment-id: השם של פריסת התיקון.

פתרון בעיות

אם נתקלתם בבעיות בתזמון או בניהול של פריסות תיקונים בסביבה שלכם, תוכלו להיעזר במקורות המידע הבאים:

מה השלב הבא?