אם יצרתם מכונות וירטואליות ב-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
המסוף
-
נכנסים לדף OS policies במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה שכותרת המשנה שלה היא Compute Engine.
בכרטיסייה VM instances, בוחרים את המכונה הווירטואלית שרוצים לבדוק.
אם המכונה הווירטואלית מכוסה על ידי מדיניות מערכת הפעלה של סוכן תפעול, בעמודה 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
המסוף
-
נכנסים לדף VM instances במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה עם כותרת המשנה Compute Engine.
בוחרים את השם של המכונה הווירטואלית.
בחלונית מידע בסיסי, מאתרים את הערך תוויות.
אם המכונה הווירטואלית כלולה במדיניות מערכת ההפעלה של סוכן תפעול, היא תכלול תווית כמו
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
המסוף
-
נכנסים לדף OS policies במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה שכותרת המשנה שלה היא Compute Engine.
כדי לראות את מצב הפריסה של מדיניות מערכת ההפעלה, לוחצים על הכרטיסייה הקצאות של מדיניות מערכת ההפעלה.
למדיניות של מערכת ההפעלה של סוכן תפעול יש הקצאות עם מזהים שמתחילים במחרוזת 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.
המסוף
-
נכנסים לדף VM instances במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה עם כותרת המשנה Compute Engine.
בוחרים את שם המכונה הווירטואלית שרוצים לערוך.
לוחצים על Edit.
עוברים לקטע תוויות ולוחצים על + הוספת תוויות.
מוצאים את התווית עם המפתח
goog-ops-agent-policyולוחצים על מחיקת הפריט.
gcloud
כדי להסיר את התווית
goog-ops-agent-policyממכונה וירטואלית, מריצים את הפקודה הבאה:gcloud compute instances update VM_NAME \ --remove-labels=goog-ops-agent-policy
הסרת ההתקנה של סוכן התפעול בכל המכונות הווירטואליות
כדי להסיר את 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
הסקריפט מבצע את המשימות הבאות בכל אזור:
- הפקודה מוצאת את כל מדיניות מערכת ההפעלה של סוכן תפעול.
- עריכה של כל מדיניות כך שהיא תגרום להסרת ההתקנה של סוכן תפעול במכונות הווירטואליות שהיא חלה עליהן.
- מחיקת מדיניות מערכת ההפעלה של סוכן תפעול.
- התווית
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:
המסוף
-
נכנסים לדף VM instances במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה עם כותרת המשנה Compute Engine.
ברשימה VM instances, מסמנים את תיבות הסימון לצד המכונות הווירטואליות שרוצים להוסיף להן תוויות ולוחצים על Labels.
כדי להוסיף תוויות, לוחצים על +הוספת תווית ומוסיפים את צמד המפתח/ערך. המפתח חייב להיות
goog-ops-agent-policyוהערך הוא גרסת התבנית הרצויה, למשל1-0-0.שומרים את השינויים.
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.getserviceusage.services.enableosconfig.osPolicyAssignments.getosconfig.osPolicyAssignments.createosconfig.projectFeatureSettings.updatecompute.instances.create
ההרשאות הנדרשות להתקנת סוכן תפעול במכונות וירטואליות קיימות:
serviceusage.services.getserviceusage.services.enableosconfig.osPolicyAssignments.getosconfig.osPolicyAssignments.createosconfig.projectFeatureSettings.updatecompute.instances.setMetadatacompute.instances.setLabels
תוכלו למצוא תפקידים מקבילים שמספקים את ההרשאות האלה בחומר העזר בנושא תפקידים בסיסיים ומוגדרים מראש ב-IAM.
פקודות לדוגמה להקצאת תפקידים לצורך הרשאות:
gcloud projects add-iam-policy-binding project-id --member='user:user-email' --role='roles/osconfig.projectFeatureSettingsEditor'