התקנת תוספים למכונות וירטואליות על ידי יצירת כללי מדיניות לתוספים

במאמר הזה מוסבר איך ליצור כללי מדיניות לתוספים של מכונות וירטואליות, שמאפשרים להתקין ולנהל באופן אוטומטי תוספים בצי של מכונות וירטואליות (VM) ב-Compute Engine. הגדרת מדיניות מאפשרת לוודא שתוספים ספציפיים מותקנים ומתוחזקים בכל המכונות הווירטואליות שתואמות לקריטריונים שציינתם, כמו תוויות של מכונות וירטואליות. אתם יכולים ליצור מדיניות של תוספים למכונות וירטואליות ברמת הפרויקט, או ברמת הארגון והתיקייה (זמין בגרסת טרום-השקה (Preview)).

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

מגבלות על יצירת מדיניות

אפשר ליצור כללי מדיניות של תוספי VM ברמת התיקייה וברמת הארגון רק באמצעות ה-CLI של Google Cloud או Compute Engine API בארכיטקטורת REST.

עדיפות המדיניות ופתרון סתירות

כשכמה כללי מדיניות ברמות היררכיה שונות (ארגון, תיקייה או פרויקט) חלים על אותו VM, רמת ההיררכיה לא קובעת את סדר הקדימויות. במקום זאת, VM Extension Manager משתמש בעדיפות המדיניות ובחותמות הזמן של העדכונים כדי לפתור התנגשויות.

אם יש שתי כללי מדיניות שמתנגשים לגבי אותו תוסף, המדיניות עם העדיפות הגבוהה יותר מקבלת קדימות. ערכי העדיפות נעים בין 0 ל-65535, כאשר מספר נמוך יותר מציין עדיפות גבוהה יותר. עדיפות ברירת המחדל היא 1000. אם לכמה כללי מדיניות יש את אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה. מחיקת מדיניות לא מסירה את התוסף אם מדיניות בעדיפות נמוכה יותר עדיין חלה על המכונה הווירטואלית.

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

אתם יכולים ליצור מדיניות גלובלית של תוספים למכונות וירטואליות כדי להתקין תוספים במכונות וירטואליות בכמה אזורים, בהתאם לתוכנית השקה. אפשר להגדיר מדיניות גלובלית ברמת הפרויקט, או ברמת התיקייה או הארגון (זמין בגרסת טרום-השקה (Preview)).

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

תוכניות השקה של כללי מדיניות גלובליים

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

תוכניות השקה מוגדרות מראש

אפשר לבחור אחת מתוכניות ההשקה הבאות שהוגדרו מראש:

  • ‫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"
      }
    }
  ]
}

אחרי שיוצרים תוכנית השקה מותאמת אישית, אפשר להשתמש בה כשיוצרים מדיניות גלובלית.

התקנת תוספי VM בכל האזורים בארגון

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

הרשאות IAM נדרשות

כדי לקבל את ההרשאה שנדרשת ליצירת מדיניות של תוספים ברמת הארגון, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של מדיניות תוספים של Compute VM ברמת הארגון (roles/compute.orgVmExtensionPolicyAdmin) ב-IAM בארגון. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה מכיל את ההרשאה compute.orgVmExtensionPolicies.create, שנדרשת כדי ליצור מדיניות של תוספים ברמת הארגון.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.

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

gcloud

כדי ליצור מדיניות גלובלית של תוספים למכונות וירטואליות ברמת הארגון, משתמשים בפקודה gcloud preview compute global-vm-extension-policies create עם הדגל --organization:

gcloud preview compute global-vm-extension-policies create POLICY_NAME \
  --organization=organizations/ORGANIZATION_ID \
  --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.
  • ‫ORGANIZATION_ID: מזהה הארגון של המדיניות ברמת הארגון. הפורמט של המשאב הוא organizations/{organization}/global/vmExtensionPolicies/{name}.
  • ‫DESCRIPTION: תיאור אופציונלי של המדיניות.
  • ‫EXTENSION_NAME_1,EXTENSION_NAME_2: רשימה מופרדת בפסיקים של תוספים שצריך להוסיף למדיניות. צריך לציין לפחות תוסף אחד. אפשר לציין כל אחת מהסיומות הנתמכות הבאות:
    • ops-agent
    • google-cloud-sap-extension
    • google-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: רשימה מופרדת בפסיקים של צמדי מפתח/ערך, שבה המפתח הוא שם התוסף והערך הוא הנתיב לקובץ התצורה של התוסף הזה. הקובץ הזה נמצא ב-VM שבו מריצים את הפקודה gcloud, ולא ב-VM שבו מתקינים את התוסף.

    לחלופין, כדי לספק את ההגדרות כמחרוזת מוטבעת, משתמשים בדגל --config במקום בדגל --config-from-file – לדוגמה, EXTENSION_NAME_1="CONFIG_1". אפשר להשתמש ב---config-from-file או ב---config, אבל לא בשניהם באותה פקודה.

  • ‫KEY_1=VALUE_1: רשימה מופרדת בפסיקים של צמדי מפתח/ערך שמגדירים תוויות הכללה לבורר. כדי שהמכונות הווירטואליות יטורגטו, הן צריכות לכלול את כל התוויות שצוינו בבורר. אם מציינים את --inclusion-labels כמה פעמים, המדיניות מטרגטת מכונות וירטואליות שתואמות לכל אחד מהבוררים שצוינו (OR לוגי). אם לא תציינו את הדגל הזה, המדיניות תטרגט את כל המכונות הווירטואליות בכל הפרויקטים והאזורים הצאצאים בארגון.
  • ‫PRIORITY: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה.
  • ‫ROLLOUT_PLAN: מציינים slow_rollout או fast_rollout. אם אתם צריכים להשתמש בתוכנית השקה בהתאמה אישית, ציינו את הדגל --rollout-custom-plan במקום --rollout-predefined-plan בפורמט הבא:
    --rollout-custom-plan=organizations/ORGANIZATION_ID/locations/global/rolloutPlans/ROLLOUT_PLAN_NAME

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

    • ‫ORGANIZATION_ID: הארגון שבו מוגדרת תוכנית ההשקה.
    • ‫ROLLOUT_PLAN_NAME: השם של תוכנית ההשקה בהתאמה אישית שהגדרתם.

    אם לא מציינים דגל של תוכנית השקה, VM Extension Manager משתמש ב-slow_rollout.

  • ‫ROLLOUT_CONFLICT_BEHAVIOR: קובע את ההתנהגות כש-VM Extension Manager מזהה התנגשות בין מדיניות אזורית למדיניות גלובלית. אפשר לציין אחת מההתנהגויות הבאות במקרה של התנגשות:
    • "" (מחרוזת ריקה): המדיניות הגלובלית לא מחליפה כללי מדיניות אזוריים עם אותו שם שמתנגשים איתה. ההתנהגות הזו במקרה של התנגשות היא ברירת המחדל.
    • ‫overwrite: המדיניות הגלובלית מחליפה כל מדיניות אזורית עם אותו שם, ואז המדיניות הגלובלית מנהלת את השקות המדיניות באזור.

    מידע נוסף זמין בקטע הדגל --rollout-conflict-behavior.

דוגמה: יצירת מדיניות גלובלית ברמת הארגון

הפקודה הבאה יוצרת מדיניות גלובלית בעדיפות גבוהה בשם prod-frontend-policy ברמת הארגון (organizations/123456789) לעומסי עבודה של ייצור בממשק הקצה (env=prod,workload=frontend), ומצמידה גרסה ספציפית לתוסף ops-agent עם תוכנית השקה איטית:

gcloud preview compute global-vm-extension-policies create prod-frontend-policy \
  --organization=organizations/123456789 \
  --description="Standard monitoring policy for production frontend VMs" \
  --extensions=ops-agent \
  --version=ops-agent=2.58.0 \
  --config=ops-agent="some-monitoring-config" \
  --inclusion-labels="env=prod,workload=frontend" \
  --priority=100 \
  --rollout-predefined-plan=slow_rollout

REST

כדי ליצור מדיניות גלובלית של תוספים למכונות וירטואליות ברמת הארגון, שולחים בקשת POST אל ה-method‏ organizationGlobalVmExtensionPolicies.insert:

POST https://compute.googleapis.com/compute/2026-10-01-preview/organizations/ORGANIZATION_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": "organizations/ORGANIZATION_ID/locations/global/rolloutPlans/ROLLOUT_PLAN_NAME"
  }
}
}

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

  • ‫ORGANIZATION_ID: מזהה הארגון.
  • ‫POLICY_NAME: שם למדיניות של תוסף ה-VM.
  • ‫DESCRIPTION: תיאור אופציונלי של המדיניות.
  • ‫EXTENSION_NAME_1, EXTENSION_NAME_2: שם התוסף שרוצים להוסיף למדיניות. צריך לציין לפחות תוסף אחד. אפשר לציין כל אחת מהסיומות הנתמכות הבאות:
    • ops-agent
    • google-cloud-sap-extension
    • google-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: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה.
  • ‫ROLLOUT_CONFLICT_BEHAVIOR: קובע את ההתנהגות כש-VM Extension Manager מזהה התנגשות בין מדיניות אזורית למדיניות גלובלית. אפשר לציין אחת מההתנהגויות הבאות במקרה של התנגשות:
    • "" (מחרוזת ריקה): המדיניות הגלובלית לא מחליפה כללי מדיניות אזוריים עם אותו שם שמתנגשים איתה. ההתנהגות הזו במקרה של התנגשות היא ברירת המחדל.
    • ‫overwrite: המדיניות הגלובלית מחליפה כל מדיניות אזורית עם אותו שם, ואז המדיניות הגלובלית מנהלת את השקות המדיניות באזור.

    מידע נוסף זמין בקטע הדגל --rollout-conflict-behavior.

  • ‫ROLLOUT_PLAN_NAME: השם של תוכנית ההשקה בהתאמה אישית שהגדרתם. כדי להשתמש בתוכנית השקה מוגדרת מראש, מחליפים את השדה name ב-predefinedRolloutPlan ומציינים את אחד מהערכים הבאים:
    • ‫SLOW_ROLLOUT: המדיניות תושק תוך חמישה ימים. תוכנית ההשקה הזו מוגדרת מראש כברירת מחדל אם לא מציינים תוכנית אחרת.
    • ‫FAST_ROLLOUT: השקת המדיניות באופן מיידי בכל האזורים.

דוגמה: יצירת מדיניות גלובלית ברמת הארגון

בדוגמה הבאה נוצרת מדיניות גלובלית בשם org-global-extension-policy שמתקינה את התוסף ops-agent לארגון 123456789 במכונות וירטואליות עם התווית env=prod, בעדיפות 100 ותוכנית השקה מוגדרת מראש SLOW_ROLLOUT:

POST https://compute.googleapis.com/compute/2026-10-01-preview/organizations/123456789/global/vmExtensionPolicies

{
"name": "org-global-extension-policy",
"description": "Standard monitoring policy for organization VMs",
"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": "100",
"rolloutOperation": {
  "rolloutInput": {
    "predefinedRolloutPlan": "SLOW_ROLLOUT"
  }
}
}

התקנת תוספים של מכונות וירטואליות בכל האזורים בתיקייה

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

הרשאות IAM נדרשות

כדי לקבל את ההרשאה שנדרשת ליצירת מדיניות תוספים ברמת התיקייה, בקשו מהאדמין להקצות לכם את התפקיד אדמין של מדיניות תוספים של Compute VM ברמת התיקייה (roles/compute.folderVmExtensionPolicyAdmin) ב-IAM בתיקייה. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה מכיל את ההרשאה compute.folderVmExtensionPolicies.create, שנדרשת כדי ליצור מדיניות הרחבה ברמת התיקייה.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.

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

gcloud

כדי ליצור מדיניות גלובלית של תוספים למכונות וירטואליות ברמת התיקייה, משתמשים בפקודה gcloud preview compute global-vm-extension-policies create עם הדגל --folder:

gcloud preview compute global-vm-extension-policies create POLICY_NAME \
  --folder=folders/FOLDER_ID \
  --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.
  • ‫FOLDER_ID: מזהה התיקייה של המדיניות ברמת התיקייה. הפורמט של המשאב הוא folders/{folder}/global/vmExtensionPolicies/{name}.
  • ‫DESCRIPTION: תיאור אופציונלי של המדיניות.
  • ‫EXTENSION_NAME_1,EXTENSION_NAME_2: רשימה מופרדת בפסיקים של תוספים שצריך להוסיף למדיניות. צריך לציין לפחות תוסף אחד. אפשר לציין כל אחת מהסיומות הנתמכות הבאות:
    • ops-agent
    • google-cloud-sap-extension
    • google-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: רשימה מופרדת בפסיקים של צמדי מפתח/ערך, שבה המפתח הוא שם התוסף והערך הוא הנתיב לקובץ התצורה של התוסף הזה. הקובץ הזה נמצא ב-VM שבו מריצים את הפקודה gcloud, ולא ב-VM שבו מתקינים את התוסף.

    לחלופין, כדי לספק את ההגדרות כמחרוזת מוטבעת, משתמשים בדגל --config במקום בדגל --config-from-file – לדוגמה, EXTENSION_NAME_1="CONFIG_1". אפשר להשתמש ב---config-from-file או ב---config, אבל לא בשניהם באותה פקודה.

  • ‫KEY_1=VALUE_1: רשימה מופרדת בפסיקים של צמדי מפתח/ערך שמגדירים תוויות הכללה לבורר. כדי שהמכונות הווירטואליות יטורגטו, הן צריכות לכלול את כל התוויות שצוינו בבורר. אם מציינים את --inclusion-labels כמה פעמים, המדיניות מטרגטת מכונות וירטואליות שתואמות לכל אחד מהבוררים שצוינו (OR לוגי). אם לא מציינים את הדגל הזה, המדיניות מטרגטת את כל המכונות הווירטואליות בכל הפרויקטים והאזורים הצאצאים שבתיקייה.
  • ‫PRIORITY: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה.
  • ‫ROLLOUT_PLAN: מציינים slow_rollout או fast_rollout. אם אתם צריכים להשתמש בתוכנית השקה בהתאמה אישית, ציינו את הדגל --rollout-custom-plan במקום --rollout-predefined-plan בפורמט הבא:
    --rollout-custom-plan=folders/FOLDER_ID/locations/global/rolloutPlans/ROLLOUT_PLAN_NAME

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

    • ‫FOLDER_ID: התיקייה שבה מוגדרת תוכנית ההשקה.
    • ‫ROLLOUT_PLAN_NAME: השם של תוכנית ההשקה בהתאמה אישית שהגדרתם.

    אם לא מציינים דגל של תוכנית השקה, VM Extension Manager משתמש ב-slow_rollout.

  • ‫ROLLOUT_CONFLICT_BEHAVIOR: קובע את ההתנהגות כש-VM Extension Manager מזהה התנגשות בין מדיניות אזורית למדיניות גלובלית. אפשר לציין אחת מההתנהגויות הבאות במקרה של התנגשות:
    • "" (מחרוזת ריקה): המדיניות הגלובלית לא מחליפה כללי מדיניות אזוריים עם אותו שם שמתנגשים איתה. ההתנהגות הזו במקרה של התנגשות היא ברירת המחדל.
    • ‫overwrite: המדיניות הגלובלית מחליפה כל מדיניות אזורית עם אותו שם, ואז המדיניות הגלובלית מנהלת את השקות המדיניות באזור.

    מידע נוסף זמין בקטע הדגל --rollout-conflict-behavior.

דוגמה: יצירת מדיניות גלובלית ברמת התיקייה

הפקודה הבאה יוצרת מדיניות גלובלית בשם folder-global-extension-policy ברמת התיקייה (folders/123456), שמתקינה את התוסף ops-agent במכונות וירטואליות עם התווית env=prod באמצעות תוכנית השקה איטית:

gcloud preview compute global-vm-extension-policies create folder-global-extension-policy \
  --folder=folders/123456 \
  --description="Standard monitoring policy for folder VMs" \
  --extensions=ops-agent \
  --version=ops-agent=2.58.0 \
  --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \
  --inclusion-labels="env=prod" \
  --priority=100 \
  --rollout-predefined-plan=slow_rollout

REST

כדי ליצור מדיניות גלובלית להרחבת מכונות וירטואליות ברמת התיקייה, שולחים בקשת POST ל-method‏ folderGlobalVmExtensionPolicies.insert:

POST https://compute.googleapis.com/compute/2026-10-01-preview/folders/FOLDER_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": "folders/FOLDER_ID/locations/global/rolloutPlans/ROLLOUT_PLAN_NAME"
  }
}
}

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

  • ‫FOLDER_ID: מזהה התיקייה.
  • ‫POLICY_NAME: שם למדיניות של תוסף ה-VM.
  • ‫DESCRIPTION: תיאור אופציונלי של המדיניות.
  • ‫EXTENSION_NAME_1, EXTENSION_NAME_2: שם התוסף שרוצים להוסיף למדיניות. צריך לציין לפחות תוסף אחד. אפשר לציין כל אחת מהסיומות הנתמכות הבאות:
    • ops-agent
    • google-cloud-sap-extension
    • google-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: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה.
  • ‫ROLLOUT_CONFLICT_BEHAVIOR: קובע את ההתנהגות כש-VM Extension Manager מזהה התנגשות בין מדיניות אזורית למדיניות גלובלית. אפשר לציין אחת מההתנהגויות הבאות במקרה של התנגשות:
    • "" (מחרוזת ריקה): המדיניות הגלובלית לא מחליפה כללי מדיניות אזוריים עם אותו שם שמתנגשים איתה. ההתנהגות הזו במקרה של התנגשות היא ברירת המחדל.
    • ‫overwrite: המדיניות הגלובלית מחליפה כל מדיניות אזורית עם אותו שם, ואז המדיניות הגלובלית מנהלת את השקות המדיניות באזור.

    מידע נוסף זמין בקטע הדגל --rollout-conflict-behavior.

  • ‫ROLLOUT_PLAN_NAME: השם של תוכנית ההשקה בהתאמה אישית שהגדרתם. כדי להשתמש בתוכנית השקה מוגדרת מראש, מחליפים את השדה name ב-predefinedRolloutPlan ומציינים את אחד מהערכים הבאים:
    • ‫SLOW_ROLLOUT: המדיניות תושק תוך חמישה ימים. תוכנית ההשקה הזו מוגדרת מראש כברירת מחדל אם לא מציינים תוכנית אחרת.
    • ‫FAST_ROLLOUT: השקת המדיניות באופן מיידי בכל האזורים.

דוגמה: יצירת מדיניות גלובלית ברמת התיקייה

בדוגמה הבאה נוצרת מדיניות גלובלית בשם folder-global-extension-policy שמתקינה את התוסף ops-agent לתיקייה 123456 במכונות וירטואליות עם התווית env=prod, בעדיפות 500 ועם תוכנית השקה מוגדרת מראש SLOW_ROLLOUT:

POST https://compute.googleapis.com/compute/2026-10-01-preview/folders/123456/global/vmExtensionPolicies

{
"name": "folder-global-extension-policy",
"description": "Test extension policy for Ops Agent at folder level",
"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": {
    "predefinedRolloutPlan": "SLOW_ROLLOUT"
  }
}
}

התקנת תוספים של מכונות וירטואליות בכל האזורים בפרויקט

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

הרשאות IAM נדרשות

כדי לקבל את ההרשאה שנדרשת ליצירת מדיניות הרחבה ברמת הפרויקט, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של מדיניות הרחבה של Compute VM ‏(roles/compute.vmExtensionPolicyAdmin) ב-IAM בפרויקט. להסבר על מתן תפקידים, קראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה מכיל את ההרשאה compute.vmExtensionPolicies.create, שנדרשת כדי ליצור מדיניות הרחבה ברמת הפרויקט.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.

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

המסוף

כדי ליצור מדיניות גלובלית של תוספים למכונות וירטואליות ברמת הפרויקט במסוף Cloud de Confiance :

  1. נכנסים לדף VM extension policies במסוף Cloud de Confiance .

    לדף VM extension policies

  2. לוחצים על יצירת מדיניות לתוספים.
  3. בשדה Name, מזינים שם למדיניות.
  4. אופציונלי: בשדה תיאור, מזינים תיאור למדיניות.
  5. בשדה עדיפות, מציינים מספר עדיפות כדי לפתור התנגשויות בין כללי מדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000.
  6. בקטע היקף, בוחרים באפשרות השקה גלובלית.
  7. בקטע Manage extensions, לוחצים על Add extension ומבצעים את הפעולות הבאות לכל תוסף שרוצים להתקין במכונות הווירטואליות:
    1. ברשימה תוסף, בוחרים תוסף. מידע נוסף זמין במאמר תוספים נתמכים.
    2. ברשימה גרסה, מציינים את מספר הגרסה של התוסף. כדי לבחור את הגרסה העדכנית, צריך להשאיר את השדה ריק.
      • ב-Ops Agent, אפשר לציין את גרסה 2.58.0 ואילך.
      • ב-Extension for SAP וב-Extension for Compute Workloads, משאירים את השדה ריק כדי לבחור את הגרסה העדכנית.
    3. אופציונלי: בשדה תוכן קובץ התצורה, מזינים את פרמטרי התצורה של התוסף.
  8. בשדה תוכנית השקה, בוחרים אחת מהאפשרויות הבאות:
    • השקה איטית: התוספים מותקנים בהדרגה בכל המכונות הווירטואליות לאורך זמן. תוכנית ההשקה הזו היא אפשרות ברירת המחדל.
    • השקה מהירה: התקנת התוספים בכל המכונות הווירטואליות המטורגטות בכל האזורים באופן מיידי.

    מידע נוסף על תוכניות השקה זמין במאמר תוכניות השקה.

  9. בקטע Target VM instances, בוחרים את המכונות הווירטואליות שעליהן רוצים להחיל את המדיניות. כדי לבחור מכונות וירטואליות עם תוויות ספציפיות, לוחצים על Add labels ומוסיפים את צמד המפתח/ערך.
  10. לוחצים על יצירה.

gcloud

כדי ליצור מדיניות גלובלית של תוספים למכונות וירטואליות ברמת הפרויקט, משתמשים בפקודה gcloud compute global-vm-extension-policies create:

gcloud compute global-vm-extension-policies create POLICY_NAME \
  --project=PROJECT_ID \
  --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.
  • ‫PROJECT_ID: מזהה הפרויקט של המדיניות ברמת הפרויקט.
  • ‫DESCRIPTION: תיאור אופציונלי של המדיניות.
  • ‫EXTENSION_NAME_1,EXTENSION_NAME_2: רשימה מופרדת בפסיקים של תוספים שצריך להוסיף למדיניות. צריך לציין לפחות תוסף אחד. אפשר לציין כל אחת מהסיומות הנתמכות הבאות:
    • ops-agent
    • google-cloud-sap-extension
    • google-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: רשימה מופרדת בפסיקים של צמדי מפתח/ערך, שבה המפתח הוא שם התוסף והערך הוא הנתיב לקובץ התצורה של התוסף הזה. הקובץ הזה נמצא ב-VM שבו מריצים את הפקודה gcloud, ולא ב-VM שבו מתקינים את התוסף.

    לחלופין, כדי לספק את ההגדרות כמחרוזת מוטבעת, משתמשים בדגל --config במקום בדגל --config-from-file – לדוגמה, EXTENSION_NAME_1="CONFIG_1". אפשר להשתמש ב---config-from-file או ב---config, אבל לא בשניהם באותה פקודה.

  • ‫KEY_1=VALUE_1: רשימה מופרדת בפסיקים של צמדי מפתח/ערך שמגדירים תוויות הכללה לבורר. כדי שהמכונות הווירטואליות יטורגטו, הן צריכות לכלול את כל התוויות שצוינו בבורר. אם מציינים את --inclusion-labels כמה פעמים, המדיניות מטרגטת מכונות וירטואליות שתואמות לכל אחד מהבוררים שצוינו (OR לוגי). אם לא תציינו את הדגל הזה, המדיניות תטרגט את כל המכונות הווירטואליות בפרויקט בכל האזורים.
  • ‫PRIORITY: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה.
  • ‫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: השם של תוכנית ההשקה בהתאמה אישית שהגדרתם.

    אם לא מציינים דגל של תוכנית השקה, VM Extension Manager משתמש ב-slow_rollout.

  • ‫ROLLOUT_CONFLICT_BEHAVIOR: קובע את ההתנהגות כש-VM Extension Manager מזהה התנגשות בין מדיניות אזורית למדיניות גלובלית. אפשר לציין אחת מההתנהגויות הבאות במקרה של התנגשות:
    • "" (מחרוזת ריקה): המדיניות הגלובלית לא מחליפה כללי מדיניות אזוריים עם אותו שם שמתנגשים איתה. ההתנהגות הזו במקרה של התנגשות היא ברירת המחדל.
    • ‫overwrite: המדיניות הגלובלית מחליפה כל מדיניות אזורית עם אותו שם, ואז המדיניות הגלובלית מנהלת את השקות המדיניות באזור.

    מידע נוסף זמין בקטע הדגל --rollout-conflict-behavior.

דוגמה: יצירת מדיניות גלובלית ברמת הפרויקט

הפקודה הבאה יוצרת מדיניות בשם 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

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

הפקודה הבאה יוצרת מדיניות בשם 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-agent
    • google-cloud-sap-extension
    • google-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: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה.
  • ‫ROLLOUT_CONFLICT_BEHAVIOR: קובע את ההתנהגות כש-VM Extension Manager מזהה התנגשות בין מדיניות אזורית למדיניות גלובלית. אפשר לציין אחת מההתנהגויות הבאות במקרה של התנגשות:
    • "" (מחרוזת ריקה): המדיניות הגלובלית לא מחליפה כללי מדיניות אזוריים עם אותו שם שמתנגשים איתה. ההתנהגות הזו במקרה של התנגשות היא ברירת המחדל.
    • ‫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"
  }
}
}

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

אתם יכולים ליצור מדיניות של תוספים למכונות וירטואליות באזור מסוים, כדי להגדיר אילו תוספים להתקין ובאילו מכונות וירטואליות באזור ספציפי. אפשר להגדיר מדיניות אזורית ברמת הפרויקט, או ברמת התיקייה או הארגון (זמין בגרסת טרום-השקה (Preview)).

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

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

הרשאות IAM נדרשות

כדי לקבל את ההרשאה שנדרשת ליצירת מדיניות של תוספים ברמת הארגון, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של מדיניות תוספים של Compute VM ברמת הארגון (roles/compute.orgVmExtensionPolicyAdmin) ב-IAM בארגון. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה מכיל את ההרשאה compute.orgVmExtensionPolicies.create, שנדרשת כדי ליצור מדיניות של תוספים ברמת הארגון.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.

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

gcloud

כדי ליצור מדיניות של תוספים למכונות וירטואליות ברמת הארגון, ולהפיץ את המדיניות למכונות וירטואליות באזור ספציפי, משתמשים בפקודה gcloud preview compute zone-vm-extension-policies create עם הדגל --organization:

gcloud preview compute zone-vm-extension-policies create POLICY_NAME \
  --organization=organizations/ORGANIZATION_ID \
  --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.
  • ‫ORGANIZATION_ID: מזהה הארגון של המדיניות ברמת הארגון. הפורמט של המשאב הוא organizations/{organization}/zones/{zone}/vmExtensionPolicies/{name}.
  • ‫ZONE: האזור שבו המדיניות הזו חלה.
  • ‫DESCRIPTION: תיאור אופציונלי של המדיניות.
  • ‫EXTENSION_NAME_1,EXTENSION_NAME_2: רשימה מופרדת בפסיקים של תוספים שצריך להוסיף למדיניות. צריך לציין לפחות תוסף אחד. אפשר לציין כל אחת מהסיומות הנתמכות הבאות:
    • ops-agent
    • google-cloud-sap-extension
    • google-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: רשימה מופרדת בפסיקים של צמדי מפתח/ערך, שבה המפתח הוא שם התוסף והערך הוא הנתיב לקובץ התצורה של התוסף הזה. הקובץ הזה נמצא ב-VM שבו מריצים את הפקודה gcloud, ולא ב-VM שבו מתקינים את התוסף.

    לחלופין, כדי לספק את ההגדרות כמחרוזת מוטבעת, משתמשים בדגל --config במקום בדגל --config-from-file – לדוגמה, EXTENSION_NAME_1="CONFIG_1". אפשר להשתמש ב---config-from-file או ב---config, אבל לא בשניהם באותה פקודה.

  • ‫KEY_1=VALUE_1: רשימה מופרדת בפסיקים של צמדי מפתח/ערך שמגדירים תוויות הכללה לבורר. כדי שהמכונות הווירטואליות יטורגטו, הן צריכות לכלול את כל התוויות שצוינו בבורר. אם מציינים את --inclusion-labels כמה פעמים, המדיניות מטרגטת מכונות וירטואליות שתואמות לכל אחד מהבוררים שצוינו (OR לוגי). אם לא תציינו את הדגל הזה, המדיניות תטרגט את כל המכונות הווירטואליות באזור שצוין בכל הפרויקטים הצאצאים בארגון.
  • ‫PRIORITY: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה.

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

דוגמה: יצירת מדיניות אזורית ברמת הארגון

הפקודה הבאה יוצרת מדיניות ברמת האזור בשם org-test-extension-policy, שמתקינה את התוסף ops-agent באזור us-central1-f בארגון organizations/123456789 במכונות וירטואליות עם התווית env=prod:

gcloud preview compute zone-vm-extension-policies create org-test-extension-policy \
  --organization=organizations/123456789 \
  --zone=us-central1-f \
  --extensions=ops-agent \
  --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \
  --priority=100 \
  --inclusion-labels=env=prod

REST

כדי ליצור מדיניות של תוספים למכונות וירטואליות ברמת האזור ובהיקף הארגון, שולחים בקשת POST אל ה-method‏ organizationZoneVmExtensionPolicies.insert. בשיטה הזו מגדירים אילו תוספים להתקין ובאילו מכונות וירטואליות באזור ספציפי בארגון.

POST https://compute.googleapis.com/compute/2026-10-01-preview/organizations/ORGANIZATION_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"
}

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

  • ‫ORGANIZATION_ID: מזהה הארגון.
  • ‫ZONE: האזור שבו המדיניות הזו חלה.
  • ‫POLICY_NAME: שם למדיניות של תוסף ה-VM.
  • ‫DESCRIPTION: תיאור אופציונלי של המדיניות.
  • ‫EXTENSION_NAME_1, EXTENSION_NAME_2: שם התוסף שרוצים להוסיף למדיניות. צריך לציין לפחות תוסף אחד. אפשר לציין כל אחת מהסיומות הנתמכות הבאות:
    • ops-agent
    • google-cloud-sap-extension
    • google-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: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה.

דוגמה: יצירת מדיניות אזורית ברמת הארגון

בדוגמה הבאה נוצרת מדיניות בשם org-test-extension-policy שמתקינה את התוסף ops-agent באזור us-central1-f לארגון 123456789.

POST https://compute.googleapis.com/compute/2026-10-01-preview/organizations/123456789/zones/us-central1-f/vmExtensionPolicies

{
"name": "org-test-extension-policy",
"description": "Test extension policy for Ops Agent at organization level",
"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": "100"
}

התקנת תוספי VM באזור מסוים בתיקייה

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

הרשאות IAM נדרשות

כדי לקבל את ההרשאה שנדרשת ליצירת מדיניות תוספים ברמת התיקייה, בקשו מהאדמין להקצות לכם את התפקיד אדמין של מדיניות תוספים של Compute VM ברמת התיקייה (roles/compute.folderVmExtensionPolicyAdmin) ב-IAM בתיקייה. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה מכיל את ההרשאה compute.folderVmExtensionPolicies.create, שנדרשת כדי ליצור מדיניות הרחבה ברמת התיקייה.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.

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

gcloud

כדי ליצור מדיניות של תוספים למכונות וירטואליות ברמת התיקייה, ולהפיץ את המדיניות למכונות וירטואליות באזור ספציפי, משתמשים בפקודה gcloud preview compute zone-vm-extension-policies create עם הדגל --folder:

gcloud preview compute zone-vm-extension-policies create POLICY_NAME \
  --folder=folders/FOLDER_ID \
  --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.
  • ‫FOLDER_ID: מזהה התיקייה של המדיניות ברמת התיקייה. הפורמט של המשאב הוא folders/{folder}/zones/{zone}/vmExtensionPolicies/{name}.
  • ‫ZONE: האזור שבו המדיניות הזו חלה.
  • ‫DESCRIPTION: תיאור אופציונלי של המדיניות.
  • ‫EXTENSION_NAME_1,EXTENSION_NAME_2: רשימה מופרדת בפסיקים של תוספים שצריך להוסיף למדיניות. צריך לציין לפחות תוסף אחד. אפשר לציין כל אחת מהסיומות הנתמכות הבאות:
    • ops-agent
    • google-cloud-sap-extension
    • google-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: רשימה מופרדת בפסיקים של צמדי מפתח/ערך, שבה המפתח הוא שם התוסף והערך הוא הנתיב לקובץ התצורה של התוסף הזה. הקובץ הזה נמצא ב-VM שבו מריצים את הפקודה gcloud, ולא ב-VM שבו מתקינים את התוסף.

    לחלופין, כדי לספק את ההגדרות כמחרוזת מוטבעת, משתמשים בדגל --config במקום בדגל --config-from-file – לדוגמה, EXTENSION_NAME_1="CONFIG_1". אפשר להשתמש ב---config-from-file או ב---config, אבל לא בשניהם באותה פקודה.

  • ‫KEY_1=VALUE_1: רשימה מופרדת בפסיקים של צמדי מפתח/ערך שמגדירים תוויות הכללה לבורר. כדי שהמכונות הווירטואליות יטורגטו, הן צריכות לכלול את כל התוויות שצוינו בבורר. אם מציינים את --inclusion-labels כמה פעמים, המדיניות מטרגטת מכונות וירטואליות שתואמות לכל אחד מהבוררים שצוינו (OR לוגי). אם לא תציינו את הדגל הזה, המדיניות תטרגט את כל המכונות הווירטואליות באזור שצוין בכל הפרויקטים הצאצאים בתיקייה.
  • ‫PRIORITY: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה.

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

דוגמה: יצירת מדיניות אזורית ברמת התיקייה

הפקודה הבאה יוצרת מדיניות ברמת האזור בשם folder-test-extension-policy, שמתקינה את התוסף ops-agent באזור us-central1-f בתיקייה folders/123456 במכונות וירטואליות עם התווית env=prod:

gcloud preview compute zone-vm-extension-policies create folder-test-extension-policy \
  --folder=folders/123456 \
  --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‏ folderZoneVmExtensionPolicies.insert. בשיטה הזו מגדירים אילו תוספים להתקין ובאילו מכונות וירטואליות באזור ספציפי בתיקייה.

POST https://compute.googleapis.com/compute/2026-10-01-preview/folders/FOLDER_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"
}

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

  • ‫FOLDER_ID: מזהה התיקייה.
  • ‫ZONE: האזור שבו המדיניות הזו חלה.
  • ‫POLICY_NAME: שם למדיניות של תוסף ה-VM.
  • ‫DESCRIPTION: תיאור אופציונלי של המדיניות.
  • ‫EXTENSION_NAME_1, EXTENSION_NAME_2: שם התוסף שרוצים להוסיף למדיניות. צריך לציין לפחות תוסף אחד. אפשר לציין כל אחת מהסיומות הנתמכות הבאות:
    • ops-agent
    • google-cloud-sap-extension
    • google-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: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה.

דוגמה: יצירת מדיניות אזורית ברמת התיקייה

בדוגמה הבאה נוצרת מדיניות בשם folder-test-extension-policy שמתקינה את התוסף ops-agent באזור us-central1-f בתיקייה 123456.

POST https://compute.googleapis.com/compute/2026-10-01-preview/folders/123456/zones/us-central1-f/vmExtensionPolicies

{
"name": "folder-test-extension-policy",
"description": "Test extension policy for Ops Agent at folder level",
"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"
}

התקנת תוספים של מכונות וירטואליות באזור בפרויקט

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

הרשאות IAM נדרשות

כדי לקבל את ההרשאה שנדרשת ליצירת מדיניות הרחבה ברמת הפרויקט, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של מדיניות הרחבה של Compute VM ‏(roles/compute.vmExtensionPolicyAdmin) ב-IAM בפרויקט. להסבר על מתן תפקידים, קראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה מכיל את ההרשאה compute.vmExtensionPolicies.create, שנדרשת כדי ליצור מדיניות הרחבה ברמת הפרויקט.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.

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

המסוף

כדי ליצור מדיניות של תוספי VM ברמת האזור ובהיקף הפרויקט במסוף Cloud de Confiance :

  1. נכנסים לדף VM extension policies במסוף Cloud de Confiance .

    לדף VM extension policies

  2. לוחצים על יצירת מדיניות לתוספים.
  3. בשדה Name, מזינים שם למדיניות.
  4. אופציונלי: בשדה תיאור, מזינים תיאור למדיניות.
  5. בשדה עדיפות, מציינים מספר עדיפות כדי לפתור התנגשויות בין כללי מדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000.
  6. בקטע Scope, בוחרים באפשרות Zonal rollout.
  7. ברשימות Region ו-Zone, בוחרים את האזור והתחום שבהם נמצאים המכונות הווירטואליות. ‫VM Extension Manager מחיל את המדיניות על המכונות הווירטואליות באזור ובאזור הזמינות שנבחרו.
  8. בקטע Manage extensions, לוחצים על Add extension ומבצעים את הפעולות הבאות לכל תוסף שרוצים להתקין במכונות הווירטואליות:
    1. ברשימה תוסף, בוחרים תוסף. מידע נוסף זמין במאמר תוספים נתמכים.
    2. ברשימה גרסה, מציינים את מספר הגרסה של התוסף. כדי לבחור את הגרסה העדכנית, צריך להשאיר את השדה ריק.
      • ב-Ops Agent, אפשר לציין את גרסה 2.58.0 ואילך.
      • ב-Extension for SAP וב-Extension for Compute Workloads, משאירים את השדה ריק כדי לבחור את הגרסה העדכנית.
    3. אופציונלי: בשדה תוכן קובץ התצורה, מזינים את פרמטרי התצורה של התוסף.
  9. בקטע Target VM instances, בוחרים את המכונות הווירטואליות שעליהן רוצים להחיל את המדיניות. כדי לבחור מכונות וירטואליות עם תוויות ספציפיות, לוחצים על Add labels ומוסיפים את צמד המפתח/ערך.
  10. לוחצים על יצירה.

gcloud

כדי ליצור מדיניות של תוסף למכונות וירטואליות ברמת האזור ובהיקף הפרויקט, ולהפיץ את המדיניות למכונות וירטואליות באזור ספציפי, משתמשים בפקודה gcloud compute zone-vm-extension-policies create:

gcloud compute zone-vm-extension-policies create POLICY_NAME \
  --project=PROJECT_ID \
  --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.
  • ‫PROJECT_ID: מזהה הפרויקט של המדיניות ברמת הפרויקט.
  • ‫ZONE: האזור שבו המדיניות הזו חלה.
  • ‫DESCRIPTION: תיאור אופציונלי של המדיניות.
  • ‫EXTENSION_NAME_1,EXTENSION_NAME_2: רשימה מופרדת בפסיקים של תוספים שצריך להוסיף למדיניות. צריך לציין לפחות תוסף אחד. אפשר לציין כל אחת מהסיומות הנתמכות הבאות:
    • ops-agent
    • google-cloud-sap-extension
    • google-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: רשימה מופרדת בפסיקים של צמדי מפתח/ערך, שבה המפתח הוא שם התוסף והערך הוא הנתיב לקובץ התצורה של התוסף הזה. הקובץ הזה נמצא ב-VM שבו מריצים את הפקודה gcloud, ולא ב-VM שבו מתקינים את התוסף.

    לחלופין, כדי לספק את ההגדרות כמחרוזת מוטבעת, משתמשים בדגל --config במקום בדגל --config-from-file – לדוגמה, EXTENSION_NAME_1="CONFIG_1". אפשר להשתמש ב---config-from-file או ב---config, אבל לא בשניהם באותה פקודה.

  • ‫KEY_1=VALUE_1: רשימה מופרדת בפסיקים של צמדי מפתח/ערך שמגדירים תוויות הכללה לבורר. כדי שהמכונות הווירטואליות יטורגטו, הן צריכות לכלול את כל התוויות שצוינו בבורר. אם מציינים את --inclusion-labels כמה פעמים, המדיניות מטרגטת מכונות וירטואליות שתואמות לכל אחד מהבוררים שצוינו (OR לוגי). אם לא מציינים את הדגל הזה, המדיניות מטרגטת את כל המכונות הווירטואליות באזור שצוין בפרויקט.
  • ‫PRIORITY: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה.

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

דוגמה: יצירת מדיניות אזורית ברמת הפרויקט

הפקודה הבאה יוצרת מדיניות בשם 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"

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

הפקודה הבאה יוצרת מדיניות בשם 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-agent
    • google-cloud-sap-extension
    • google-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: מספר שלם מ-0 עד 65535 שמגדיר את העדיפות של המדיניות. מספרים נמוכים יותר מציינים עדיפות גבוהה יותר. ערך ברירת המחדל הוא 1000. אם לכמה כללי מדיניות יש אותה עדיפות, VM Extension Manager מחיל על המכונות הווירטואליות את המדיניות שעודכנה לאחרונה.

דוגמה: יצירת מדיניות אזורית ברמת הפרויקט

בדוגמה הבאה נוצרת מדיניות בשם 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"
}

המאמרים הבאים