VM Extension Manager משתמש במדיניות של תוספים כדי לנהל את תוספי המכונות הווירטואליות בהיקף גדול. מידע נוסף זמין במאמר מידע על VM Extension Manager. במאמר הזה נסביר איך להציג, לעדכן ולמחוק מדיניות של תוספים למכונות וירטואליות.
תפקידים והרשאות של IAM
כדי לקבל את ההרשאות שדרושות לצפייה, לשינוי ולמחיקה של כללי מדיניות של תוספים למכונות וירטואליות, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
-
כדי להציג את כללי המדיניות של התוספים:
-
צפייה במדיניות של תוסף למכונה וירטואלית (
roles/compute.vmExtensionPolicyViewer) -
אדמין של מדיניות תוספים למכונות וירטואליות (
roles/compute.vmExtensionPolicyAdmin)
-
צפייה במדיניות של תוסף למכונה וירטואלית (
-
כדי לשנות את כללי המדיניות של התוספים:
VM Extension Policy Admin (
roles/compute.vmExtensionPolicyAdmin) -
כדי למחוק כללי מדיניות של תוספים:
אדמין של כללי מדיניות של תוספים למכונות וירטואליות (
roles/compute.vmExtensionPolicyAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש האלה כוללים את ההרשאות שנדרשות כדי להציג, לשנות ולמחוק כללי מדיניות של תוספים למכונות וירטואליות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להציג, לשנות ולמחוק מדיניות של תוספים למכונות וירטואליות, נדרשות ההרשאות הבאות:
-
כדי להציג את כללי המדיניות של התוספים:
compute.vmExtensionPolicies.list -
כדי לראות את הפרטים של מדיניות תוספים:
compute.vmExtensionPolicies.get -
כדי לשנות את כללי המדיניות של התוספים:
compute.vmExtensionPolicies.update -
כדי למחוק כללי מדיניות של תוספים:
compute.vmExtensionPolicies.delete
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
מידע נוסף על תפקידים והרשאות ב-IAM ב-Compute Engine זמין במאמר תפקידים והרשאות ב-Compute Engine.
צפייה בכללי המדיניות של התוספים
אפשר לראות רשימה של כללי מדיניות של תוספים למכונות וירטואליות בפרויקט, או לראות את הפרטים של מדיניות ספציפית באמצעות מסוף Google Cloud או Google Cloud CLI.
עולמי
gcloud
כדי להציג את כל מדיניות התוספים הגלובלית בפרויקט, משתמשים בפקודה gcloud beta compute global-vm-extension-policies list:
gcloud beta compute global-vm-extension-policies list \ --project=PROJECT_ID \ --page-size=PAGE_SIZE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
PAGE_SIZE: המספר המקסימלי של התוצאות שיוחזרו בכל דף.
כדי לראות את הפרטים של מדיניות גלובלית ספציפית לתוספים, משתמשים בפקודה gcloud beta compute global-vm-extension-policies describe:
gcloud beta compute global-vm-extension-policies describe POLICY_NAME \ --project=PROJECT_ID
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: השם של מדיניות התוסף למכונה הווירטואלית שרוצים לתאר. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
REST
כדי לראות את כל כללי המדיניות הגלובליים של התוספים בפרויקט, צריך לשלוח בקשת GET ל-method globalVmExtensionPolicies.list.
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/vmExtensionPolicies
כדי לראות את הפרטים של מדיניות גלובלית ספציפית לגבי תוספים, שולחים בקשת GET אל ה-method globalVmExtensionPolicies.get.
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/vmExtensionPolicies/POLICY_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: השם של מדיניות התוסף של מכונת ה-VM שרוצים להציג. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
אזורי
המסוף
- נכנסים לדף VM extension policies במסוף Google Cloud . בדף הזה מפורטות כל המדיניות לגבי תוספים למכונות וירטואליות בפרויקט.
- כדי לראות את הפרטים של מדיניות ספציפית לגבי תוספים, לוחצים על שם המדיניות.
gcloud
כדי להציג את כל מדיניות התוספים באזור, משתמשים בפקודה gcloud beta compute zone-vm-extension-policies list:
gcloud beta compute zone-vm-extension-policies list \ --project=PROJECT_ID \ --zone=ZONE \ --page-size=PAGE_SIZE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
ZONE: השם של האזור שבו רוצים להציג את מדיניות התוספים של מכונות וירטואליות. -
PAGE_SIZE: המספר המקסימלי של התוצאות שיוחזרו בכל דף.
כדי לראות את הפרטים של מדיניות ספציפית לתוסף, משתמשים בפקודה gcloud beta compute zone-vm-extension-policies describe:
gcloud beta compute zone-vm-extension-policies describe POLICY_NAME \ --project=PROJECT_ID \ --zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: השם של מדיניות התוסף למכונה הווירטואלית שרוצים לתאר. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
ZONE: האזור שבו נמצאת מדיניות התוסף של המכונה הווירטואלית. Google Cloud
REST
כדי להציג את כל כללי המדיניות של התוספים האזוריים בפרויקט, שולחים בקשת GET אל ה-method zoneVmExtensionPolicies.list.
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/vmExtensionPolicies
כדי לראות את הפרטים של מדיניות ספציפית של תוסף אזורי, שולחים בקשת GET אל ה-method zoneVmExtensionPolicies.get.
GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/vmExtensionPolicies/POLICY_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: השם של מדיניות התוסף של מכונת ה-VM שרוצים להציג. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
ZONE: האזור שבו נמצאת מדיניות התוסף של המכונה הווירטואלית. Google Cloud
שינוי תוספים על ידי עדכון מדיניות של תוסף למכונה וירטואלית
כשמעדכנים מדיניות, VM Extension Manager פורס את השינויים בכל מכונות ה-VM הרלוונטיות, בדרך כלל תוך דקה. אם משנים תוויות של הכללה, יכול להיות שתוספים יותקנו במכונות וירטואליות חדשות או יוסרו ממכונות וירטואליות קיימות, בהתאם להתאמה שלהם לתוויות המעודכנות.
עולמי
gcloud
כדי לשנות מדיניות קיימת של תוסף VM גלובלי, משתמשים בפקודה gcloud beta compute global-vm-extension-policies update. כשמעדכנים מדיניות באמצעות gcloud, הבקשה מחליפה את המדיניות הקודמת. כל שדה אופציונלי שמשמיטים חוזר לערכי ברירת המחדל שלו במקום לשמור על הערכים הקיימים מהמדיניות ששונתה.
כדי לעדכן מדיניות גלובלית של תוסף למכונת VM, מריצים את הפקודה הבאה:
gcloud beta compute global-vm-extension-policies update POLICY_NAME \ --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \ --description="DESCRIPTION" \ --version=EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2 \ --config-from-file=EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2 \ --inclusion-labels=KEY_1=VALUE_1 \ --priority=PRIORITY_NUMBER \ --rollout-predefined-plan=ROLLOUT_PLAN \ --rollout-retry-uuid=RETRY_UUID \ --rollout-conflict-behavior=ROLLOUT_CONFLICT_BEHAVIOR
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: שם של מדיניות הרחבות ל-VM שרוצים לעדכן. -
EXTENSION_NAME_1, EXTENSION_NAME_2: שמות התוספים שרוצים לעדכן. צריך לציין לפחות תוסף אחד. -
DESCRIPTION: תיאור של מדיניות התוספים למכונות וירטואליות. -
VERSION_1: הגרסה של התוסף הראשון למכונה וירטואלית. -
VERSION_2: הגרסה של התוסף השני למכונה וירטואלית. EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: רשימה מופרדת בפסיקים של צמדי מפתח/ערך, כאשר המפתח הוא שם התוסף והערך הוא הנתיב לקובץ התצורה של התוסף. הנתיב הזה נמצא במכונה הווירטואלית שבה מריצים את הפקודהgcloudולא במכונה הווירטואלית שבה מתקינים את התוסף.לחלופין, כדי לספק את ההגדרה כמחרוזת מוטבעת, משתמשים בדגל
--configבמקום בדגל--config-from-file. לדוגמה:EXTENSION_NAME_1="CONFIG_1". אפשר להשתמש ב---config-from-fileאו ב---config, אבל לא בשניהם באותה פקודה.
KEY_1=VALUE_1: רשימה מופרדת בפסיקים של צמדי מפתח/ערך שמגדירים תוויות להכללה עבור בורר. כדי שמכונות וירטואליות יהיו יעדים, הן צריכות לכלול את כל התוויות שצוינו בסלקטור. אם מציינים את התג--inclusion-labelsכמה פעמים, המדיניות מטרגטת מכונות וירטואליות שתואמות לכל אחד מהסלקטורים שצוינו (אופרטור OR לוגי). אם לא מציינים את הדגל הזה, המדיניות מכוונת לכל מכונות ה-VM בכל האזורים בפרויקט.
PRIORITY_NUMBER: מספר העדיפות של מדיניות התוסף של המכונה הווירטואלית.
ROLLOUT_PLAN: ציון הערךslow_rolloutאוfast_rollout. אם אתם צריכים להשתמש בתוכנית פריסה בהתאמה אישית, אתם יכולים להשתמש בדגל--rollout-custom-planבמקום בדגל--rollout-predefined-planולציין את שם התוכנית, לדוגמה:--rollout-custom-plan=projects/PROJECT_NUMBER/locations/global/rolloutPlans/ROLLOUT_PLAN_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: הפרויקט שבו מוגדרת תוכנית ההשקה. -
ROLLOUT_PLAN_NAME: השם של תוכנית הפריסה המותאמת אישית שהגדרתם.
אם לא מציינים דגל של תוכנית השקה, המערכת משתמשת ב-
slow_rollout.-
ROLLOUT_CONFLICT_BEHAVIOR: מציין את ההתנהגות כשמזוהה התנגשות בין מדיניות אזורית למדיניות גלובלית. הערכים שאפשר לבחור הם:
""(מחרוזת ריקה): המדיניות הגלובלית לא מחליפה מדיניות אזורית סותרת עם אותו שם. זו התנהגות ברירת המחדל.
overwrite: המדיניות הגלובלית מחליפה כל מדיניות אזורית עם אותו שם, ואז המדיניות הגלובלית מנהלת את השקת המדיניות באזור.פרטים נוספים זמינים במאמר בנושא הדגל
--rollout-conflict-behavior.RETRY_UUID: מזהה ייחודי אוניברסלי (UUID) שמזהה ניסיון חוזר להפעלת עדכון מדיניות. כך תוכלו לנסות שוב לעדכן בלי לבצע שינויים. אם מגדירים את הדגל הזה ומשנים את המדיניות, מתרחשת שגיאה. מידע נוסף מופיע במאמר בנושא ניסיון חוזר להפעלת תכונה.
אזורי
המסוף
- נכנסים לדף VM extension policies במסוף Google Cloud .
- בוחרים את המדיניות שרוצים לעדכן.
- לוחצים על Edit.
- משנים את התיאור, העדיפות, התוספים או מופעי ה-VM של היעד.
- לוחצים על Save.
gcloud
כדי לשנות מדיניות קיימת של תוסף למכונה וירטואלית, משתמשים בפקודה gcloud beta compute zone-vm-extension-policies update. כשמעדכנים מדיניות באמצעות gcloud, הבקשה פועלת כהחלפה מלאה. כל השדות האופציונליים שהשמטתם יחזרו לערכי ברירת המחדל שלהם, במקום לשמור על הערכים הקיימים מהמדיניות ששונתה.
כדי לעדכן מדיניות של תוסף למכונת VM, מריצים את הפקודה הבאה:
gcloud beta compute zone-vm-extension-policies update POLICY_NAME \ --zone=ZONE \ --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \ --description="DESCRIPTION" \ --version=EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2 \ --config-from-file=EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2 \ --inclusion-labels=KEY_1=VALUE_1 \ --priority=PRIORITY_NUMBER
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: שם של מדיניות הרחבות ל-VM שרוצים לעדכן. -
ZONE: Google Cloud האזור שבו המדיניות חלה. -
EXTENSION_NAME_1, EXTENSION_NAME_2: שמות התוספים שרוצים לעדכן. צריך לציין לפחות תוסף אחד. -
DESCRIPTION: תיאור אופציונלי של מדיניות התוסף של המכונה הווירטואלית. -
VERSION_1: הגרסה של התוסף הראשון למכונה וירטואלית. -
VERSION_2: הגרסה של התוסף השני למכונה וירטואלית. EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: רשימה מופרדת בפסיקים של צמדי מפתח/ערך, כאשר המפתח הוא שם התוסף והערך הוא הנתיב לקובץ התצורה של התוסף. הנתיב הזה נמצא במכונה הווירטואלית שבה מריצים את הפקודהgcloud, ולא במכונה הווירטואלית שבה מתקינים את התוסף.לחלופין, כדי לספק הגדרה כמחרוזת מוטבעת, משתמשים בדגל
--configבמקום בדגל--config-from-file. לדוגמה:EXTENSION_NAME_1="CONFIG_1". אפשר להשתמש ב---config-from-fileאו ב---config, אבל לא בשניהם באותה פקודה.
KEY_1=VALUE_1: רשימה מופרדת בפסיקים של צמדי מפתח/ערך שמגדירים תוויות להכללה עבור בורר. כדי שמכונות וירטואליות יהיו יעדים, הן צריכות לכלול את כל התוויות שצוינו בסלקטור. אם מציינים את התג--inclusion-labelsכמה פעמים, המדיניות מטרגטת מכונות וירטואליות שתואמות לכל אחד מהסלקטורים שצוינו (אופרטור OR לוגי). אם משמיטים את הדגל הזה, המדיניות מטרגטת את כל המכונות הווירטואליות באזור שצוין.
PRIORITY_NUMBER: מספר העדיפות של מדיניות התוסף של המכונה הווירטואלית.
REST
כדי לעדכן מדיניות של תוסף אזורי, שולחים בקשת PATCH ל-method zoneVmExtensionPolicies.update.
כשמעדכנים מדיניות באמצעות REST, צריך לספק רק את השדות שרוצים לעדכן. כל השדות שמשמיטים
שומרים על הערכים הקיימים שלהם.
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/vmExtensionPolicies/POLICY_NAME
{
"description": "DESCRIPTION",
"extensionPolicies": {
"EXTENSION_NAME": {
"pinnedVersion": "EXTENSION_NAME_VERSION",
"stringConfig": "EXTENSION_NAME_CONFIG"
}
},
"instanceSelectors": [
{
"labelSelector": {
"inclusionLabels": {
"KEY_1": "VALUE_1",
"KEY_2": "VALUE_2"
}
}
}
],
"priority": PRIORITY_NUMBER
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
ZONE: האזור שבו נמצאת מדיניות התוסף של המכונה הווירטואלית. Google Cloud -
POLICY_NAME: שם של מדיניות הרחבות ל-VM שרוצים לעדכן. -
DESCRIPTION: תיאור של מדיניות התוספים למכונות וירטואליות. -
EXTENSION_NAME: השם של התוסף שרוצים לעדכן, שמשמש כמפתח במפהextensionPolicies. כדי לעדכן כמה תוספים, צריך לכלול כמה רשומות בextensionPoliciesmap. -
EXTENSION_NAME_VERSION: הגרסה של תוסף ה-VM. -
EXTENSION_NAME_CONFIG: הגדרות התצורה של תוסף ה-VM, כמחרוזת מוטבעת. -
KEY_1:VALUE_1,KEY_2:VALUE_2: זוגות של מפתח וערך שמגדירים תוויות הכללה לבורר. כדי שמכונות וירטואליות יהיו יעדים, הן צריכות לכלול את כל התוויות שצוינו בסלקטור. כדי לציין כמה סלקטורים, צריך לכלול כמה אובייקטים במערךinstanceSelectors, כל אחד עם שדהlabelSelector. במקרה כזה, VM Extension Manager מכוון למכונות וירטואליות שתואמות לכל אחד מהסלקטורים שצוינו (האופרטור הלוגי OR). אם משמיטים אתinstanceSelectors, המדיניות מטרגטת את כל המכונות הווירטואליות באזור שצוין. -
PRIORITY_NUMBER: מספר העדיפות של מדיניות התוסף של המכונה הווירטואלית.
הסרת תוספים על ידי מחיקת מדיניות של תוסף למכונה וירטואלית
כשמוחקים מדיניות, VM Extension Manager מסיר את ההתקנה של התוספים מכל מכונות ה-VM שמנוהלות על ידי המדיניות הזו. עם זאת, אם מדיניות פעילה אחרת עם עדיפות נמוכה יותר חלה על מכונה וירטואלית ומצהירה על אותו תוסף, התוסף יישאר מותקן במכונה הווירטואלית הזו על סמך המדיניות עם העדיפות הנמוכה יותר.
VM Extension Manager מסיר תוספים מכל המכונות הווירטואליות הנגישות תוך דקה ממחיקת המדיניות. אם אי אפשר לגשת למכונה וירטואלית כי סוכן האורח הוסר או שהמכונה הווירטואלית נמחקה, VM Extension Manager מדלג על מחיקת התוסף. אם מכונת ה-VM הזו תהיה זמינה שוב, VM Extension Manager יסיר את התוספים באותו זמן.
עולמי
gcloud
כדי למחוק מדיניות קיימת של תוסף VM גלובלי, משתמשים בפקודה gcloud beta compute global-vm-extension-policies delete.
gcloud beta compute global-vm-extension-policies delete POLICY_NAME \ --project=PROJECT_ID \ --rollout-predefined-plan=ROLLOUT_PLAN \ --rollout-retry-uuid=RETRY_UUID
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: השם של מדיניות התוסף למכונה הווירטואלית שרוצים למחוק. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
ROLLOUT_PLAN: מצייניםslow_rolloutאוfast_rollout. אם אתם צריכים להשתמש בתוכנית פריסה בהתאמה אישית, אתם יכולים להשתמש בדגל--rollout-custom-planבמקום בדגל--rollout-predefined-planולציין את שם התוכנית, לדוגמה:--rollout-custom-plan=projects/PROJECT_NUMBER/locations/global/rolloutPlans/ROLLOUT_PLAN_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NUMBER: הפרויקט שבו מוגדרת תוכנית ההשקה. -
ROLLOUT_PLAN_NAME: השם של תוכנית הפריסה המותאמת אישית שהגדרתם.
אם לא מציינים דגל של תוכנית השקה, המערכת משתמשת ב-
slow_rollout.-
RETRY_UUID: מזהה ייחודי אוניברסלי (UUID) לניסיון חוזר למחיקת מדיניות הרחבות. מגדירים את השדה הזה רק כשמנסים שוב לשלוח בקשת מחיקה של מדיניות קיימת שנמצאת במצבDELETING. הגדרת השדה הזה כשהמדיניות לא במצבDELETINGגורמת לשגיאה. מידע נוסף מופיע במאמר בנושא ניסיון חוזר להפעלת תכונה.
REST
כדי למחוק מדיניות גלובלית של תוסף, צריך לשלוח בקשת POST ל-method globalVmExtensionPolicies.delete.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/vmExtensionPolicies/POLICY_NAME
{
"retryUuid": "RETRY_UUID",
"predefinedRolloutPlan": "ROLLOUT_PLAN"
}
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: השם של מדיניות התוסף למכונה הווירטואלית שרוצים למחוק. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
ROLLOUT_PLAN: מצייניםslow_rolloutאוfast_rollout. -
RETRY_UUID: מזהה ייחודי אוניברסלי (UUID) לניסיון חוזר למחיקת מדיניות של תוסף. מגדירים את השדה הזה רק כשמנסים שוב לשלוח בקשת מחיקה של מדיניות קיימת שנמצאת במצבDELETING. הגדרת השדה הזה כשהמדיניות לא במצבDELETINGגורמת לשגיאה. מידע נוסף מופיע במאמר בנושא ניסיון חוזר להפעלת תכונה.
אזורי
המסוף
- נכנסים לדף VM extension policies במסוף Google Cloud .
- בוחרים את המדיניות שרוצים למחוק.
- לוחצים על Delete.
- בתיבת הדו-שיח לאישור, לוחצים על מחיקה.
gcloud
כדי למחוק מדיניות קיימת של תוסף למכונה וירטואלית, משתמשים בפקודה gcloud beta compute zone-vm-extension-policies delete.
gcloud beta compute zone-vm-extension-policies delete POLICY_NAME \ --project=PROJECT_ID \ --zone=ZONE
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: השם של מדיניות התוסף למכונה הווירטואלית שרוצים למחוק. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
ZONE: Google Cloud האזור שבו נמצאת המדיניות.
REST
כדי למחוק מדיניות של תוסף אזורי, שולחים בקשת DELETE ל-method zoneVmExtensionPolicies.delete.
DELETE https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/vmExtensionPolicies/POLICY_NAME
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: השם של מדיניות התוסף של מכונת ה-VM שרוצים למחוק. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
ZONE: Google Cloud האזור שבו נמצאת המדיניות.
פתרון בעיות בתוספים של מכונות וירטואליות
בקטע הזה מוסבר איך לפתור בעיות שקשורות לתוספים של מכונות וירטואליות.
איך בודקים אם תוסף מותקן
כדי לוודא שתוסף מותקן, בודקים את הדברים הבאים במכונה הווירטואלית:
מתחברים ל-VM ובודקים אם יש תהליכים פעילים.
בטבלה הבאה מפורטים שמות התהליכים של כל תוסף:
שם התוסף שם התהליך של התוסף google-cloud-sap-extensiongoogle_cloud_sap_agentgoogle-cloud-workload-extensiongoogle_cloud_workload_agentops-agentops-agentLinux
מחליפים אתps aux | grep 'EXTENSION_PROCESS_NAME'
EXTENSION_PROCESS_NAMEבשם התהליך של התוסף. לדוגמה, כדי לבדוק את התהליך של סוכן תפעול, מריצים את הפקודה הבאה:ps aux | grep 'ops-agent'
Windows
מחליפים אתtasklist | findstr "EXTENSION_PROCESS_NAME"
EXTENSION_PROCESS_NAMEבשם התהליך של התוסף. לדוגמה, כדי לבדוק את התהליך של סוכן תפעול, מריצים את הפקודה הבאה:tasklist | findstr "ops-agent"
הפלט של הפקודה
psבמכונת VM של Linux עבור סוכן תפעול עשוי להציג רשומה דומה לזו:.... /var/lib/google-guest-agent/931374772276853249/plugins/ops-agent_baddabb3dac3 ....
הפעלה ובדיקה של יומנים של סוכני אורחים בקטעי היומן של סוכן האורח מופיעים נתונים על התקנה והפעלה של תוסף.
הדוגמה הבאה מציגה פלט שמופיע ביומנים של סוכן האורח כשמותקן תוסף של סוכן תפעול:
my-instance google_guest_agent [14972]: Installing plugin "ops-agent", revision "2dfa648c1892da87" my-instance google_guest_agent [14972]: (client.go:181) Sent message [[type.googleapis.com/agent_controlplane.PluginEventMessage: (revision_id:"2dfa648c1892da87)]] my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "DownloadPluginStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (pluginengine.go:316) Successfully downloaded "https://storage.googleapis.com/acp-gcs-bucket-us-centrall-a/ops-agent my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "UnpackPluginArchiveStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (pluginengine.go:361) Successfully unpacked "/var/lib/google-guest-agent/ops-agent.tar.gz" to "/google-guest-agent/ops-agent_2dfa648c1892da87 my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "LaunchPluginStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (run_linux.go:32) Attempting process start: (OutputType:0 Name:/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87) my-instance google_guest_agent [14972]: (pluginlauncher.go:132) Launched a plugin process from "/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (plugin.go:136) Dialing in on plugin "ops-agent 2dfa648c1892da87" my-instance google_guest_agent [14972]: (plugin.go:51) Executing start request on plugin "ops-agent_2dfa648c1892da87"
פתרון בעיות בהתקנה
אם תוסף לא מותקן במכונה וירטואלית אחרי שיוצרים מדיניות, אפשר לבצע את השלבים הבאים כדי לפתור את הבעיה:
- ממתינים לאכיפת המדיניות. יכולות לחלוף עד שעה לפני שמדיניות תופעל, כולל ניסיונות חוזרים.
- בודקים שהתוויות להכללה שצוינו במדיניות תואמות לתוויות במכונה הווירטואלית.
- כדי לזהות שגיאות התקנה פוטנציאליות, מפעילים את רישום ניפוי הבאגים ביומן עבור הסוכן של האורח.
אחרי שפותרים את הבעיה הבסיסית, מנסים שוב להתקין את התוסף באחת מהשיטות הבאות:
- ליצור מחדש את המדיניות: מוחקים את המדיניות ואז יוצרים מדיניות חדשה.
שימוש במדיניות זמנית עם עדיפות גבוהה: אם אתם רוצים להימנע מיצירה מחדש של מדיניות שמשפיעה על הרבה מכונות וירטואליות, אתם יכולים להשתמש במדיניות זמנית עם עדיפות גבוהה יותר כדי לנסות שוב את ההתקנה במכונות וירטואליות ספציפיות:
- מוסיפים תווית חדשה למכונות הווירטואליות שההתקנה שלהן נכשלה. לדוגמה, מוסיפים תווית
status=failed. - יוצרים מדיניות עם עדיפות גבוהה יותר שמטרגטת את התווית החדשה.
לדוגמה, אם המדיניות המקורית שנכשלה הייתה בעדיפות ברירת המחדל
1000, צריך ליצור מדיניות בעדיפות גבוהה יותר, כמו500.gcloud beta compute zone-vm-extension-policies create temp-policy
--project=test-project
--zone=us-central1-f
--extensions=ops-agent
--config-from-file=ops-agent="/usr/ops-agent-config.yaml"
--priority=500
--inclusion-labels=status=failed - אחרי שההרחבה מותקנת בהצלחה, צריך למחוק את מדיניות הזמנית ולהסיר את התווית מהמכונות הווירטואליות. התוסף נשאר מותקן כי המדיניות המקורית עדיין פעילה.
- מוסיפים תווית חדשה למכונות הווירטואליות שההתקנה שלהן נכשלה. לדוגמה, מוסיפים תווית
צפייה ביומני ניפוי באגים של סוכן האורח
כדי להפעיל יומן רישום לניפוי באגים, מוסיפים את ההגדרות של רמת היומן ודרגת המלל לקטע Core בקובץ התצורה של סוכן האורח, באופן הבא:
Linux
- פותחים את קובץ התצורה של סוכן האורח שנמצא במיקום
/etc/default/instance_configs.cfg. מוסיפים את השורות הבאות לקובץ. אם הקטע
[Core]כבר קיים, מוסיפים לו את ההגדרותlog_levelו-log_verbosity.[Core] log_level = 4 log_verbosity = 4מפעילים מחדש את מנהל סוכני האורחים באמצעות הפקודה הבאה:
sudo systemctl restart google-guest-agent-managerכדי להציג את היומנים של פעילות סוכן האורח במהלך התקנת התוסף, מריצים את הפקודה הבאה:
journalctl -u google-guest-agent-manager
Windows
- פותחים את קובץ התצורה של סוכן האורח שנמצא במיקום
C:\Program Files\Google\Compute Engine\instance_configs.cfg. מוסיפים את השורות הבאות לקובץ. אם הקטע
[Core]כבר קיים, מוסיפים לו את ההגדרותlog_levelו-log_verbosity.[Core] log_level = 4 log_verbosity = 4מפעילים מחדש את מנהל סוכן האורח על ידי הרצת הפקודה הבאה כאדמין ב-Windows:
net stop GCEAgentManager net start GCEAgentManagerכדי להציג את היומנים של פעילות הסוכן האורח במהלך התקנת התוסף, מריצים את הפקודה הבאה ב-PowerShell:
Get-Eventlog -Source google_guest_agent_manager -LogName Application
אחרי שמפעילים את יומני הניפוי באגים, בודקים אם מופיעות השגיאות הנפוצות הבאות:
- אין מספיק נפח פנוי בדיסק: אם ביומני הרישום מופיע דיווח על כך שאין מספיק נפח פנוי בדיסק, צריך לפנות מקום בדיסק או לשנות את גודל הדיסק כדי להוסיף עוד נפח.
- שימוש מוגזם במשאבים: אם ביומנים מצוין שהסוכן האורח הפסיק את התוסף בגלל שימוש מוגזם בזיכרון או במעבד, צריך לשנות את סוג המכונה של המכונה הווירטואלית לסוג עם יותר משאבים.