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

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

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

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

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

אתם יכולים להשתמש במסוף 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 מותקן במכונה הווירטואלית, בעמודה Summary (סיכום) מופיע הערך '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

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

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

המסוף

  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"

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

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

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

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

הסרת סוכן תפעול מ-VM ספציפי

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

המסוף

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

    כניסה לדף VM instances

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

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

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

  4. עוברים לקטע תוויות ולוחצים על + הוספת תוויות.

  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 וליצור מדיניות. כל ההרשאות הנדרשות זמינות באמצעות התפקיד 'עורך' (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'