ניהול מכונות וירטואליות שכלולות במדיניות מערכת ההפעלה של סוכן תפעול

אם יצרתם מכונות וירטואליות ב-Compute Engine עם סוכן תפעול שהותקן במהלך היצירה, או במקרים מסוימים, אם התקנתם את הסוכן במכונות וירטואליות קיימות באמצעות Google Cloud המסוף, Google Cloud נוצרו גם כללי מדיניות של מערכת ההפעלה ב-VM Manager שמתקינים את סוכן תפעול ועוקבים אחריו. במסמך הזה מוסבר איך לשלוח שאילתות למדיניות מערכת ההפעלה של סוכן תפעול ואיך לנהל את סוכן תפעול במכונות וירטואליות שכלולות במדיניות. מידע על יצירת מכונות וירטואליות עם התקנה אוטומטית של סוכן תפעול זמין במאמר התקנת סוכן תפעול במהלך יצירת מכונה וירטואלית.

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

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

חיפוש מכונות וירטואליות שכלולות במדיניות מערכת ההפעלה של סוכן תפעול

אתם יכולים להשתמש במסוף Google Cloud או ב-Google Cloud CLI כדי לראות אילו מכונות וירטואליות בפרויקט Google Cloud שלכם מכוסות על ידי מדיניות מערכת הפעלה של Ops Agent באמצעות הקצאת מדיניות מערכת הפעלה. אם לדעתכם חסר כיסוי של מכונה וירטואלית, תוכלו לפתור את הבעיה באמצעות הפעולות הבאות:

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

כדי לוודא שהמכונות הווירטואליות באזור מסוים מכוסות על ידי מדיניות מערכת ההפעלה של Ops Agent, משתמשים במסוף או ב-CLI של gcloud כדי לראות אם המכונה הווירטואלית קשורה להקצאת מדיניות מערכת הפעלה של Ops Agent. Google Cloud

המסוף

  1. נכנסים לדף OS policies במסוף Google Cloud :

    מעבר אל מדיניות OS

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה שכותרת המשנה שלה היא Compute Engine.

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

  3. אם המכונה הווירטואלית מכוסה על ידי מדיניות מערכת הפעלה של סוכן תפעול, בעמודה OS policy id מופיע goog-ops-agent-policy והמצב הוא Compliant (תואם).

gcloud

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

gcloud compute os-config os-policy-assignment-reports list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"

הפלט מציג רשימה של מכונות וירטואליות עם הקצאת מדיניות של מערכת הפעלה של סוכן תפעול. אם Ops Agent מותקן במכונה הווירטואלית, בעמודה 'סיכום' יופיע הערך '1/1 policies compliant'.

INSTANCE    ASSIGNMENT_ID                                    LOCATION    UPDATE_TIME                  SUMMARY
instance-1  goog-ops-agent-v2-x86-template-1-0-0-us-east4-c  us-east4-c  2023-04-28T02:11:15.118088Z  1/1 policies compliant
instance-3  goog-ops-agent-v2-x86-template-1-0-0-us-east4-c  us-east4-c  2023-04-28T02:11:15.118088Z  1/1 policies compliant

אימות של תווית מדיניות של מערכת הפעלה של סוכן תפעול במכונה וירטואלית

כדי לראות אילו מכונות וירטואליות בפרויקט Google Cloud שלכם כוללות את התווית של מדיניות מערכת ההפעלה של סוכן תפעול, ‏ goog-ops-agent-policy, אפשר להשתמש במסוף Google Cloud או ב-CLI של gcloud.

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud :

    כניסה לדף VM instances

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה שבה כותרת המשנה היא Compute Engine.

  2. בוחרים את שם המכונה הווירטואלית.

  3. בחלונית מידע בסיסי, מאתרים את הערך תוויות.

    אם המכונה הווירטואלית כלולה במדיניות מערכת ההפעלה של סוכן תפעול, היא תכלול תווית כמו goog-ops-agent-policy:v2-x86-template-1-0-0.

gcloud

כדי לראות את כל מכונות ה-VM שיש להן את תווית מדיניות מערכת ההפעלה של סוכן תפעול goog-ops-agent-policy, מריצים את הפקודה הבאה:

gcloud compute instances list --format="table(name,zone,labels)" --filter="labels=goog-ops-agent-policy"

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

NAME                  ZONE           LABELS
test-vm1              us-central1-a  {'goog-ops-agent-policy': 'v2-x86-template-1-0-0'}
test-vm1              us-east4-c     {'goog-ops-agent-policy': 'v2-x86-template-1-0-0'}

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

gcloud compute instances describe --format "yaml(labels)" --zone=ZONE VM_NAME

בפלט מוצגת רשימת התוויות של מכונת ה-VM. אם למכונה הווירטואלית יש את תווית המדיניות של מערכת ההפעלה של סוכן תפעול, אז goog-ops-agent-policy מופיע ברשימה labels. לדוגמה:

labels:
  goog-ops-agent-policy: v2-x86-template-1-0-0

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

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

המסוף

  1. נכנסים לדף OS policies במסוף Google Cloud :

    מעבר אל מדיניות OS

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה שכותרת המשנה שלה היא Compute Engine.

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

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

gcloud

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

gcloud compute os-config os-policy-assignments list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"

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

ASSIGNMENT_ID                                       ROLLOUT_STATE    REVISION_CREATE_TIME       REVISION_ID    
goog-ops-agent-v2-x86-template-1-4-0-us-central1-b  SUCCEEDED        2023-01-28T05:23:41Z.      940df3e9-77fd-470b-84df-53fb24825c4a
goog-ops-agent-v2-x86-template-1-0-0-us-central1-b  SUCCEEDED        2022-01-28T05:23:41Z.      qwareaff-efte-erew-aeet-faer234t4gga

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

gcloud compute os-config os-policy-assignments describe POLICY_ASSIGNMENT_ID --location=ZONE

הסרת Ops Agent במכונות וירטואליות שמכוסות על ידי מדיניות מערכת ההפעלה של Ops Agent

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

הסרת סוכן תפעול ממכונה וירטואלית ספציפית

כדי להסיר את המדיניות ולהסיר את ההתקנה של סוכן תפעול ממכונה וירטואלית ספציפית, אפשר להשתמש במסוף Google Cloud או ב-CLI של gcloud.

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud :

    כניסה לדף VM instances

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה שבה כותרת המשנה היא Compute Engine.

  2. בוחרים את השם של המכונה הווירטואלית שרוצים לערוך.

  3. לוחצים על Edit.

  4. עוברים לקטע Labels ולוחצים על + Add Labels.

  5. מוצאים את התווית עם המפתח goog-ops-agent-policy ולוחצים על מחיקת הפריט.

  6. מסירים את הסוכן.

gcloud

  1. כדי להסיר את התווית goog-ops-agent-policy ממכונה וירטואלית, מריצים את הפקודה הבאה:

    gcloud compute instances update VM_NAME \
      --remove-labels=goog-ops-agent-policy
    
  2. מסירים את הסוכן.

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

כדי להסיר את Ops Agent ממכונות וירטואליות באזור שבו יש הקצאה של מדיניות מערכת הפעלה של Ops Agent, משתמשים בסקריפט שסופק על ידי Cloud Monitoring. אי אפשר להסיר את ההתקנה של הסוכן מקבוצה של מכונות וירטואליות באמצעות מסוף Google Cloud .

כדי להריץ את הסקריפט, צריך להיות לכם תפקיד עורך של מדיניות אורחים (roles/osconfig.guestPolicyEditor).

מריצים את הסקריפט הבא ב-Cloud Shell. אפשר לציין כל מספר של אזורים:

curl -sSO https://dl.google.com/cloudagents/undo-ops-agent-policies.sh
bash undo-ops-agent-policies.sh ZONE1 ZONE2

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

  1. מוצא את כל כללי המדיניות של מערכת ההפעלה של סוכן תפעול.
  2. עריכה של כל מדיניות כך שהיא תסיר את ההתקנה של סוכן תפעול במכונות הווירטואליות שהיא חלה עליהן.
  3. מחיקת מדיניות מערכת ההפעלה של סוכן תפעול.
  4. התווית goog-ops-agent-policy מוסרת מכל מכונה וירטואלית שכלולה בכיסוי.

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

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

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

gcloud compute os-config os-policy-assignments list --location=ZONE
  --filter="ASSIGNMENT_ID ~ goog-ops-agent"

כדי להרחיב את הכיסוי של המדיניות למכונות וירטואליות אחרות, משתמשים במסוף Google Cloud או ב-CLI של gcloud:

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud :

    כניסה לדף VM instances

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה שבה כותרת המשנה היא Compute Engine.

  2. ברשימה VM instances, מסמנים את תיבות הסימון לצד המכונות הווירטואליות שרוצים להוסיף להן תוויות ולוחצים על Labels.

  3. כדי להוסיף תוויות, לוחצים על +הוספת תווית ומוסיפים את צמד המפתח/ערך. המפתח חייב להיות goog-ops-agent-policy והערך הוא גרסת התבנית הרצויה, למשל 1-0-0.

  4. שומרים את השינויים.

gcloud

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

gcloud compute instances update VM_NAME --zone=ZONE
  --update-labels=goog-ops-agent-policy:v2-x86-template-1-0-0
gcloud compute instances add-metadata VM_NAME --zone=ZONE
  --metadata=enable-osconfig=TRUE

הרשאה

ההתקנה של סוכן תפעול מתבצעת באמצעות VM Manager, ונדרשות הרשאות כדי להפעיל את VM Manager API וליצור מדיניות. כל ההרשאות הנדרשות זמינות באמצעות התפקיד Editor (roles/Editor). לחלופין, אפשר לבקש מאדמין של הפרויקט להעניק את ההרשאות המינימליות באמצעות Google Cloud CLI.

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

  • serviceusage.services.get
  • serviceusage.services.enable
  • osconfig.osPolicyAssignments.get
  • osconfig.osPolicyAssignments.create
  • osconfig.projectFeatureSettings.update
  • compute.instances.create

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

  • serviceusage.services.get
  • serviceusage.services.enable
  • osconfig.osPolicyAssignments.get
  • osconfig.osPolicyAssignments.create
  • osconfig.projectFeatureSettings.update
  • compute.instances.setMetadata
  • compute.instances.setLabels

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

פקודות לדוגמה להקצאת תפקידים לצורך הרשאות:

gcloud projects add-iam-policy-binding project-id --member='user:user-email' --role='roles/osconfig.projectFeatureSettingsEditor'