בנוסף להפעלה של משימות תיקון לפי דרישה, יכול להיות שתרצו ליצור פריסת תיקונים כדי להפעיל משימות תיקון באופן אוטומטי לפי לוח זמנים מוגדר.
לכל פריסת תיקון יכול להיות לוח זמנים חד-פעמי, שבו משימת התיקון פועלת בתאריך ובשעה ספציפיים, או לוח זמנים חוזר, שבו משימת התיקון פועלת במרווח זמן מסוים.
מסנני מכונות מאפשרים לתקן כמה מכונות בו-זמנית. המסננים האלה מופעלים על כל משימת תיקון בנפרד בזמן שהיא פועלת. כך אפשר לוודא שהשינויים בפרויקט נשמרים בזמן אמת.
לדוגמה, נניח שנוצרת פריסת תיקונים כדי להחיל תיקונים על כל המכונות באזור asia-souteast1-b החל מעוד שבועיים. בזמן שיצרתם את התיקון היו לכם 20 מכונות באזור, אבל כמה ימים אחר כך נוספו לאזור 40 מכונות חדשות. המסנן מופעל כשהתיקון מתחיל, ולכן כל 60 המכונות מתעדכנות. כך אפשר להוסיף ולהסיר מכונות בלי לעדכן את לוח הזמנים של פריסת התיקונים.
לפני שמתחילים
- בודקים את המכסות של OS Config.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-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
- במסוף Google Cloud , נכנסים לדף Compute Engine > VM Manager > Patch.
- לוחצים על New patch deployment.
בקטע Target VMs, בוחרים את האזור שבו נמצאות המכונות הווירטואליות שרוצים לעדכן. אפשר גם לבחור את כל האזורים.
לדוגמה, כדי לתקן מכונות וירטואליות ספציפיות באזורים שבחרתם, הזינו את מסנני השם והתווית באופן דומה לדוגמה הבאה:
- תחילית שם:
test- - תוויות:
env=devו-app=web
- תחילית שם:
בקטע Patch configuration, מגדירים את התיקון.
- מציינים שם לתיקון.
- בוחרים את העדכונים הנדרשים למערכת ההפעלה. מידע נוסף זמין במאמר מה כוללת משימת תיקון של מערכת ההפעלה.
בקטע תזמון, מבצעים את הפעולות הבאות:
- בוחרים לוח זמנים. אתם יכולים לתזמן הטמעת תיקון חד-פעמית או הטמעות תיקונים חוזרות.
- (אופציונלי) מגדירים משך זמן או חלון זמן לתחזוקה.
בקטע Rollout options, מגדירים את האפשרויות להשקת התיקון:
- בוחרים אם לתקן אזור אחד בכל פעם או לתקן אזורים בו-זמנית.
- הגדרת תקציב לשיבושים. תקציב ההפרעה הוא המספר או האחוז של המכונות הווירטואליות באזור שאתם רוצים שיופרעו בו-זמנית על ידי תהליך התיקון.
(אופציונלי) בקטע Advanced options, אתם יכולים לבצע את הפעולות הבאות:
- בוחרים אפשרות להפעלה מחדש.
- מעלים סקריפטים לפני ואחרי התיקון. למידע נוסף על סקריפטים לפני ואחרי תיקון, קראו את המאמר הגדרת סקריפטים לפני ואחרי תיקון.
לוחצים על 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
- במסוף Google Cloud , נכנסים לדף Compute Engine > VM Manager > Patch.
- לוחצים על הכרטיסייה פריסות מתוזמנות.
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
- במסוף Google Cloud , נכנסים לדף Compute Engine > VM Manager > Patch.
- לוחצים על הכרטיסייה פריסות מתוזמנות.
- לוחצים על שם הפריסה שרוצים לבדוק.
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
- במסוף Google Cloud , נכנסים לדף Compute Engine > VM Manager > Patch.
- לוחצים על הכרטיסייה פריסות מתוזמנות.
- לוחצים על שם הפריסה שרוצים למחוק.
- לוחצים על מחיקת לוח הזמנים הזה.
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: השם של פריסת התיקון.
פתרון בעיות
אם נתקלתם בבעיות בתזמון או בניהול של פריסות תיקונים בסביבה שלכם, תוכלו להיעזר במקורות המידע הבאים:
כדי לפתור בעיות בהטמעת תיקונים ובפריסת תיקונים, קראו את המאמר פתרון בעיות ב-VM Manager.
פריסות של תיקונים מוגדרות ברמת הפרויקט ב- Google Cloud . כדי לעקוף את הבעיה ולהפוך את פריסת התיקונים לאוטומטית ולייצא את תוצאות התאימות של התיקונים בכמה פרויקטים בארגון, קראו את המאמר פתרון עקיף לניהול פריסות של תיקונים בארגון.