במאמר הזה מוסבר איך ליצור מדיניות של תוספים למכונות וירטואליות (VM), שמאפשרת להתקין ולנהל תוספים באופן אוטומטי בצי של מכונות וירטואליות של Compute Engine. הגדרת מדיניות מאפשרת לוודא שתוספים ספציפיים מותקנים ומתוחזקים בכל המכונות הווירטואליות שתואמות לקריטריונים שציינתם, כמו תוויות של מכונות וירטואליות.
לפני שמתחילים
- כדאי לעיין בעקרונות הבסיסיים של VM Extension Manager.
- בודקים את המיכסות של VM Extension Manager.
- מפעילים את Compute Engine API בפרויקט Google Cloud , אם הוא עדיין לא מופעל.
- מוודאים שבמכונה הווירטואלית פועלת גרסה
20241209.01של הסוכן האורח או גרסה חדשה יותר. - כדי לראות יומני ניפוי באגים של אירועים ב-VM Extension Manager, צריך להגדיר את הגדרות היומן עבור הסוכן האורח.
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
התפקידים שצריך ב-IAM
כדי לקבל את ההרשאה שנדרשת ליצירת מדיניות הרחבות, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM VM Extension Policy Admin (אדמין של מדיניות הרחבות למכונות וירטואליות) (roles/compute.vmExtensionPolicyAdmin).
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה compute.vmExtensionPolicies.create, שנדרשת כדי ליצור מדיניות הרשאות לתוספים.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.
מידע נוסף על תפקידים והרשאות ב-IAM ב-Compute Engine זמין במאמר תפקידים והרשאות ב-Compute Engine.
עדיפות המדיניות ופתרון סתירות
אם כמה כללי מדיניות חלים על אותה מכונה וירטואלית, VM Extension Manager משתמש בעדיפות המדיניות כדי לפתור את ההתנגשויות.
אם יש סתירה בין שתי מדיניות לגבי אותה תוסף, המדיניות עם העדיפות הגבוהה יותר תקבל עדיפות. ערכי העדיפות נעים בין 0 ל-65535, כאשר מספר נמוך יותר מציין עדיפות גבוהה יותר. עדיפות ברירת המחדל היא 1,000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את כלל המדיניות שעודכן לאחרונה. מחיקת מדיניות לא מסירה את התוסף אם מדיניות בעדיפות נמוכה יותר עדיין חלה על המכונה הווירטואלית.
יצירת מדיניות גלובלית לתוספים למכונות וירטואליות
אתם יכולים ליצור מדיניות גלובלית של תוספים למכונות וירטואליות כדי להתקין תוספים במכונות וירטואליות בכמה אזורים בפרויקט, בהתאם לתוכנית השקה. מדיניות גלובלית של תוספי VM לא חלה ישירות על מכונות וירטואליות. במקום זאת, כשהמדיניות מושקת, VM Extension Manager יוצר כללי מדיניות בכל אזור על סמך תוכנית ההשקה. לאחר מכן, כללי המדיניות האלה מנהלים את התקנת התוספים במכונות הווירטואליות באזורים שלהם.
אפשר להשתמש ב-gcloud או ב-method globalVmExtensionPolicies.insert כדי ליצור כללי מדיניות גלובליים לתוספים.
מידע על תוכניות השקה
מדיניות גלובלית של תוספים למכונות וירטואליות משתמשת בתוכניות השקה כדי לנהל את הפריסה של תוספים במיקומים שונים. אתם יכולים להשתמש באחת מתוכניות ההשקה המוגדרות מראש או ליצור תוכנית השקה בהתאמה אישית.
תוכניות השקה מוגדרות מראש
slow_rollout: המדיניות תושק במשך חמישה ימים. השקה הדרגתית היא תוכנית ההשקה שמוגדרת כברירת מחדל.-
fast_rollout: המדיניות מופעלת מיד בכל האזורים.
תוכניות השקה בהתאמה אישית
אתם יכולים ליצור תוכניות השקה בהתאמה אישית באמצעות השיטה rolloutPlans.insert.
לדוגמה, קובץ ה-JSON הבא מגדיר תוכנית השקה בשם test-rollout-plan שמיועדת לשני אזורים:
{ "name": "test-rollout-plan", "waves": [ { "selectors": [ { "locationSelector": { "includedLocations": [ "us-central1-a", "us-west1-a" ] } } ], "validation": { "type": "time", "timeBasedValidationMetadata": { "waitDuration": "0s" } }, "orchestrationOptions": { "maxConcurrentResourcesPerLocation": "10", "maxConcurrentLocations": "10" } } ] }
אחר כך תוכלו להשתמש בתוכנית הפריסה המותאמת הזו כשיוצרים מדיניות גלובלית, כמו שמוצג בדוגמה 2.
יצירת מדיניות גלובלית
כדי ליצור מדיניות גלובלית של תוספים למכונות וירטואליות, משתמשים באחת מהשיטות הבאות.
המסוף
- נכנסים לדף VM extension policies במסוף Google Cloud .
- לוחצים על יצירה.
- בשדה Name, מזינים שם למדיניות.
- אופציונלי: בשדה תיאור, מזינים תיאור למדיניות.
- בשדה עדיפות, מציינים מספר עדיפות כדי לפתור סתירות בין כללי מדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1,000.
- בקטע היקף, בוחרים באפשרות השקה גלובלית.
- בקטע Manage extensions (ניהול תוספים), לוחצים על Add extension (הוספת תוסף) ומבצעים את הפעולות הבאות לכל תוסף שרוצים להתקין במכונות הווירטואליות של היעד:
- ברשימה תוסף, בוחרים תוסף.
- ברשימה Version, מציינים את מספר הגרסה או משאירים את השדה ריק כדי להשתמש בגרסה העדכנית.
בשדה תוכנית השקה, בוחרים תוכנית השקה מבין האפשרויות הבאות:
- השקה איטית: התקנת תוספים בהדרגה בכל המכונות הווירטואליות לאורך זמן. זו האפשרות שמוגדרת כברירת המחדל.
- השקה מהירה: התקנת התוספים בכל המכונות הווירטואליות המטורגטות בכל האזורים והמחוזות באופן מיידי.
מידע נוסף על תוכניות השקה זמין במאמר תוכניות השקה.
בקטע Target VM instances (מכונות וירטואליות ליעד), בוחרים את המכונות הווירטואליות שאליהן רוצים להחיל את המדיניות. כדי לבחור מכונות וירטואליות עם תוויות ספציפיות, לוחצים על Add labels ומוסיפים את צמד המפתח/ערך.
לוחצים על יצירה.
gcloud
משתמשים בפקודה gcloud compute global-vm-extension-policies create כדי ליצור מדיניות גלובלית של תוספים למכונות וירטואליות:
gcloud compute global-vm-extension-policies create POLICY_NAME \ --description="DESCRIPTION" \ --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \ --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 \ --rollout-predefined-plan=ROLLOUT_PLAN \ --rollout-conflict-behavior=ROLLOUT_CONFLICT_BEHAVIOR
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: שם למדיניות של תוסף ה-VM. -
DESCRIPTION: תיאור אופציונלי של המדיניות. -
EXTENSION_NAME_1,EXTENSION_NAME_2: רשימה מופרדת בפסיקים של תוספים להוספה למדיניות. צריך לציין לפחות תוסף אחד. הערכים התקפים לתוספים הם:ops-agentgoogle-cloud-sap-extensiongoogle-cloud-workload-extension
יש תמיכה רק בגרסה העדכנית ביותר.EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2: רשימה מופרדת בפסיקים של זוגות של מפתח וערך, כאשר המפתח הוא שם התוסף והערך הוא גרסת התוסף. אם לא מציינים גרסה לתוסף, VM Extension Manager משתמש בגרסה הזמינה האחרונה ומשדרג אותה אוטומטית כשגרסאות חדשות הופכות לזמינות.
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: מספר שלם שמגדיר את העדיפות של המדיניות. מספרים גדולים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1,000. אם לכמה כללי מדיניות יש אותה עדיפות, כלל המדיניות שעודכן לאחרונה יחול על המכונות הווירטואליות.
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.-
דוגמה 1
הפקודה הבאה יוצרת מדיניות בשם global-test-extension-policy שמתקינה את התוסף ops-agent לפרויקט test-project.
הדגל --config-from-file מציין את הנתיב לקובץ מקומי שמכיל הגדרת YAML לסוכן תפעול, והדגל --rollout-predefined-plan מציין את תוכנית slow_rollout.
gcloud compute global-vm-extension-policies create global-test-extension-policy \ --project=test-project \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --rollout-predefined-plan=slow_rollout
דוגמה 2
הפקודה הבאה יוצרת מדיניות בשם global-test-extension-policy-2 שמתקינה את התוסף ops-agent לפרויקט test-project במכונות וירטואליות עם התווית env=prod. עדיפות המדיניות מוגדרת ל-500, והדגל --config-from-file מציין את הנתיב לקובץ מקומי שמכיל הגדרת YAML ל-סוכן תפעול. הדגל --rollout-custom-plan מציין תוכנית השקה בהתאמה אישית.
gcloud compute global-vm-extension-policies create global-test-extension-policy-2 \ --project=test-project \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --priority=500 \ --inclusion-labels=env=prod \ --rollout-custom-plan=projects/12345678/locations/global/rolloutPlans/test-rollout-plan
REST
כדי ליצור מדיניות גלובלית של תוסף למכונה וירטואלית, שולחים בקשת POST אל ה-method globalVmExtensionPolicies.insert.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/vmExtensionPolicies
{
"name": "POLICY_NAME",
"description": "DESCRIPTION",
"extensionPolicies": {
"EXTENSION_NAME_1": {
"stringConfig": "EXTENSION_NAME_1_CONFIG",
"pinnedVersion": "EXTENSION_NAME_1_VERSION"
},
"EXTENSION_NAME_2": {
"stringConfig": "EXTENSION_NAME_2_CONFIG",
"pinnedVersion": "EXTENSION_NAME_2_VERSION"
}
},
"instanceSelectors": [
{
"labelSelector": {
"inclusionLabels": {
"KEY_1": "VALUE_1"
}
}
}
],
"priority": "PRIORITY",
"rolloutOperation": {
"rolloutInput": {
"conflictBehavior": "ROLLOUT_CONFLICT_BEHAVIOR",
"name": "projects/PROJECT_NUMBER/locations/global/rolloutPlans/ROLLOUT_PLAN_NAME"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
POLICY_NAME: שם למדיניות של תוסף ה-VM. -
DESCRIPTION: תיאור אופציונלי של המדיניות. -
EXTENSION_NAME_1,EXTENSION_NAME_2: השם של התוסף שרוצים להוסיף למדיניות. צריך לציין לפחות תוסף אחד. הערכים התקפים לתוספים הם:ops-agentgoogle-cloud-sap-extensiongoogle-cloud-workload-extension
-
EXTENSION_NAME_1_CONFIG,EXTENSION_NAME_2_CONFIG: ההגדרה של התוסף, שמופיעה כמחרוזת מוטבעת.
יש תמיכה רק בגרסה העדכנית ביותר.EXTENSION_NAME_1_VERSION, EXTENSION_NAME_2_VERSION: גרסת התוסף. אם לא מציינים גרסה לתוסף, VM Extension Manager משתמש בגרסה הזמינה האחרונה ומשדרג אותה באופן אוטומטי כשגרסאות חדשות הופכות לזמינות.
KEY_1:VALUE_1: זוג של מפתח וערך שמגדיר תוויות הכללה לבורר. כדי שהמכונות הווירטואליות יטורגטו, הן צריכות לכלול את כל התוויות שצוינו בבורר. אם מציינים כמהinstanceSelectors, המדיניות מכוונת למכונות וירטואליות שתואמות לכל אחד מהסלקטורים שצוינו (האופרטור הלוגי OR). אם לא מציינים אתinstanceSelectors, המדיניות מכוונת לכל המכונות הווירטואליות בפרויקט בכל האזורים.
PRIORITY: מספר שלם שמגדיר את העדיפות של המדיניות. מספרים גדולים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1,000. אם לכמה כללי מדיניות יש אותה עדיפות, כלל המדיניות שעודכן לאחרונה יחול על המכונות הווירטואליות.
ROLLOUT_CONFLICT_BEHAVIOR: מציין את ההתנהגות כשמזוהה קונפליקט בין מדיניות אזורית למדיניות גלובלית. הערכים שאפשר לבחור הם:-
""(מחרוזת ריקה): המדיניות הגלובלית לא מחליפה מדיניות אזורית סותרת עם אותו שם. זאת פעולת ברירת המחדל.
overwrite: המדיניות הגלובלית מחליפה כל מדיניות אזורית עם אותו שם, ואז המדיניות הגלובלית מנהלת את השקות המדיניות באזור.לפרטים נוספים, ראו הדגל
--rollout-conflict-behavior.
-
PROJECT_NUMBER: הפרויקט שבו מוגדרת תוכנית ההשקה המותאמת אישית.
ROLLOUT_PLAN_NAME: השם של תוכנית ההשקה בהתאמה אישית שהגדרתם. כדי להשתמש בתוכנית השקה מוגדרת מראש, מחליפים את השדהnameב-predefinedRolloutPlanומציינים אחד מהערכים הבאים:-
SLOW_ROLLOUT: המדיניות תושק במשך חמישה ימים. זו תוכנית הפריסה שמוגדרת כברירת מחדל אם לא מצוינת תוכנית. -
FAST_ROLLOUT: המדיניות מופעלת באופן מיידי בכל האזורים.
-
דוגמה
בדוגמה הבאה נוצרת מדיניות בשם global-test-extension-policy שמתקינה את התוסף ops-agent לפרויקט 12345678 במכונות וירטואליות עם התווית env=prod. עדיפות המדיניות מוגדרת כ-500, והיא משתמשת בתוכנית ההשקה test-rollout-plan.
POST https://compute.googleapis.com/compute/v1/projects/12345678/global/vmExtensionPolicies { "name": "global-test-extension-policy", "description": "Test extension policy for Ops Agent", "extensionPolicies": { "ops-agent": { "stringConfig": "logging: receivers: systemd_logs: type: systemd_journald service: pipelines: systemd_pipeline: receivers: [systemd_logs]", "pinnedVersion": "2.58.0" }, "instanceSelectors": [ { "labelSelector": { "inclusionLabels": { "env": "prod" } } } ], "priority": "500", "rolloutOperation": { "rolloutInput": { "name": "projects/12345678/locations/global/rolloutPlans/test-rollout-plan" } } }
יצירת מדיניות של תוסף למכונה וירטואלית אזורית
כדי ליצור מדיניות הרחבה של מכונות וירטואליות באזורים, אפשר להשתמש באחת מהשיטות הבאות. המדיניות הזו קובעת אילו תוספים להתקין ובאילו מכונות וירטואליות באזור ספציפי.
המסוף
- נכנסים לדף VM extension policies במסוף Google Cloud .
- לוחצים על יצירת מדיניות תוספים.
- בשדה Name, מזינים שם למדיניות.
- אופציונלי: בשדה תיאור, מזינים תיאור למדיניות.
- בשדה עדיפות, מציינים מספר עדיפות כדי לפתור סתירות בין כללי מדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1,000.
- בקטע היקף, בוחרים באפשרות השקה אזורית.
- ברשימות Region ו-Zone, בוחרים את האזור והתחום שבהם נמצאים מכונות ה-VM. VM Extension Manager מחיל את המדיניות על מכונות ה-VM באזור ובאזור המשנה שנבחרו.
- בקטע Extensions, לוחצים על Add extension ומבצעים את הפעולות הבאות לכל תוסף שרוצים להתקין במכונות הווירטואליות המיועדות:
- ברשימה Extension, בוחרים תוסף. למידע על תוספים נתמכים
- ברשימה Version, מציינים את מספר הגרסה של התוסף. משאירים את השדה ריק כדי לבחור את הגרסה העדכנית.
- ב-Ops Agent, אפשר לציין את גרסה
2.58.0ואילך. - במקרה של Extension for SAP ו-Extension for Compute workloads, משאירים את השדה ריק כדי לבחור את הגרסה העדכנית.
- ב-Ops Agent, אפשר לציין את גרסה
- אופציונלי: בשדה Config file content (תוכן קובץ תצורה), מזינים פרמטרים של תצורה לתוסף.
- בקטע Target VM instances (מכונות וירטואליות ליעד), בוחרים את המכונות הווירטואליות שאליהן רוצים להחיל את המדיניות. כדי לבחור מכונות וירטואליות עם תוויות ספציפיות, לוחצים על הוספת תוויות ומוסיפים את צמד המפתח/ערך.
- לוחצים על יצירה.
gcloud
כדי ליצור מדיניות של תוספים למכונות וירטואליות באזור ספציפי ולהפיץ את המדיניות למכונות הווירטואליות באזור הזה, משתמשים בפקודה gcloud compute zone-vm-extension-policies create:
gcloud compute zone-vm-extension-policies create POLICY_NAME \ --zone=ZONE \ --description="DESCRIPTION" \ --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \ --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
מחליפים את מה שכתוב בשדות הבאים:
-
POLICY_NAME: שם למדיניות של תוסף ה-VM. -
ZONE: האזור שבו המדיניות הזו חלה. -
DESCRIPTION: תיאור אופציונלי של המדיניות. -
EXTENSION_NAME_1,EXTENSION_NAME_2: רשימה מופרדת בפסיקים של תוספים להוספה למדיניות. צריך לציין לפחות תוסף אחד. הערכים התקפים לתוספים הם:ops-agentgoogle-cloud-sap-extensiongoogle-cloud-workload-extension
יש תמיכה רק בגרסה העדכנית ביותר.EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2: רשימה מופרדת בפסיקים של זוגות של מפתח וערך, כאשר המפתח הוא שם התוסף והערך הוא גרסת התוסף. אם לא מציינים גרסה לתוסף, VM Extension Manager משתמש בגרסה הזמינה האחרונה ומשדרג אותה אוטומטית כשגרסאות חדשות הופכות לזמינות.
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: מספר שלם בין 0 ל-65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1,000.הפקודה תיכשל אם כבר קיים באזור כלל מדיניות עם השם שצוין.
דוגמה 1
הפקודה הבאה יוצרת מדיניות בשם test-extension-policy שמתקינה את התוסף ops-agent באזור us-central1-f עבור הפרויקט test-project.
הדגל --config-from-file מציין את הנתיב לקובץ מקומי שמכיל הגדרת YAML לסוכן תפעול.
gcloud compute zone-vm-extension-policies create test-extension-policy \ --project=test-project \ --zone=us-central1-f \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml"
דוגמה 2
הפקודה הבאה יוצרת מדיניות בשם test-extension-policy-2 שמתקינה את התוסף ops-agent באזור us-central1-f לפרויקט test-project במכונות וירטואליות עם התווית env=prod. עדיפות המדיניות מוגדרת ל-500, והדגל --config-from-file מציין את הנתיב לקובץ מקומי שמכיל הגדרת YAML לסוכן תפעול.
gcloud compute zone-vm-extension-policies create test-extension-policy-2 \ --project=test-project \ --zone=us-central1-f \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --priority=500 \ --inclusion-labels=env=prod
REST
כדי ליצור מדיניות הרחבה של מכונות וירטואליות באזורים, שולחים בקשת POST ל-method zoneVmExtensionPolicies.insert.
השיטה הזו מגדירה אילו תוספים להתקין ובאילו מכונות וירטואליות באזור ספציפי.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/vmExtensionPolicies
{
"name": "POLICY_NAME",
"description": "DESCRIPTION",
"extensionPolicies": {
"EXTENSION_NAME_1": {
"stringConfig": "EXTENSION_NAME_1_CONFIG"
"pinnedVersion": "EXTENSION_NAME_1_VERSION"
},
"EXTENSION_NAME_2": {
"stringConfig": "EXTENSION_NAME_2_CONFIG"
"pinnedVersion": "EXTENSION_NAME_2_VERSION"
},
"instanceSelectors": [
{
"labelSelector": {
"inclusionLabels": {
"KEY_1": "VALUE_1"
}
}
}
],
"priority": "PRIORITY"
}
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
ZONE: האזור שבו המדיניות הזו חלה. -
POLICY_NAME: שם למדיניות של תוסף ה-VM. -
DESCRIPTION: תיאור אופציונלי של המדיניות. -
EXTENSION_NAME_1,EXTENSION_NAME_2: השם של התוסף שרוצים להוסיף למדיניות. צריך לציין לפחות תוסף אחד. הערכים התקפים לתוספים הם:ops-agentgoogle-cloud-sap-extensiongoogle-cloud-workload-extension
EXTENSION_NAME_1_VERSION, EXTENSION_NAME_2_VERSION: גרסת התוסף. אם לא מציינים גרסה לתוסף, VM Extension Manager משתמש בגרסה העדכנית ביותר שזמינה ומשדרג אותה באופן אוטומטי כשגרסאות חדשות זמינות.
EXTENSION_NAME_1_CONFIG,EXTENSION_NAME_2_CONFIG: ההגדרה של התוסף, שמופיעה כמחרוזת מוטבעת.
KEY_1:VALUE_1: זוג של מפתח וערך שמגדיר תוויות הכללה לבורר. כדי שמכונות וירטואליות יהיו יעד, הן צריכות לכלול את כל התוויות שצוינו בסלקטור. אם מציינים כמה ערכים שלinstanceSelectors, המדיניות מטרגטת מכונות וירטואליות שתואמות לכל אחד מהבוררים שצוינו (OR לוגי). אם לא מציינים אתinstanceSelectors, המדיניות מטרגטת את כל המכונות הווירטואליות באזור שצוין.
PRIORITY: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1,000.
דוגמה
בדוגמה הבאה נוצרת מדיניות בשם test-extension-policy שמתקינה את התוסף ops-agent באזור us-central1-f עבור my-project.
POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/vmExtensionPolicies
{
"name": "test-extension-policy",
"description": "Test extension policy for Ops Agent",
"extensionPolicies": {
"ops-agent": {
"stringConfig": "logging:
receivers:
systemd_logs:
type: systemd_journald
service:
pipelines:
systemd_pipeline:
receivers: [systemd_logs]",
"pinnedVersion": "2.58.0"
},
"instanceSelectors": [
{
"labelSelector": {
"inclusionLabels": {
"env": "test"
}
}
}
],
"priority": "500"
}
}