מאפייני אורח הם סוג של מטא-נתונים מותאמים אישית שאפליקציות שפועלות במכונות של Compute Engine משתמשות בהם כדי לקרוא ולכתוב כמויות קטנות של נתונים. המאפיינים האלה מספקים מנגנון לאפליקציות לאותת על סטטוס, לפרסם הגדרות או לדווח על פרטי מלאי. אתם יכולים לגשת לנתונים האלה גם בתוך מופע המחשוב וגם מחוצה לו, ולהשתמש בהם כדי לבצע את הפעולות הבאות:
- ניהול ותזמור של עומסי עבודה
- ניהול מערכות הפעלה של אורחים
- פתרון בעיות בהגדרות של מכונות Compute
לפני שמתחילים
- במכונות וירטואליות של Windows Server, צריך להשתמש ב-PowerShell 3.0 ואילך.
מומלץ להשתמש ב-
ctrl+vכדי להדביק את בלוקי הקוד שהועתקו. -
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
התפקידים הנדרשים
ההרשאות או התפקידים הנדרשים תלויים בשאלה אם אתם משלימים את המשימות מתוך המכונה הווירטואלית או מחוצה לה.
בתוך ה-VM
אם אתם מגדירים, שולחים שאילתות או מוחקים את מאפייני האורח מתוך המכונה הווירטואלית, אתם צריכים רק את התפקידים וההרשאות לחיבור למכונה הווירטואלית. כל תהליך שפועל במופע של מכונה וירטואלית יכול לכתוב לערכים של מאפייני האורח, כולל סקריפטים ואפליקציות שאין להם הרשאות ברמת sudo או ברמת אדמין.
לקריאות וכתיבות מתוך מכונת VM, שרת המטא-נתונים מספק אימות והרשאה אוטומטיים ברמת המכונה. כל מכונה וירטואלית יכולה לקרוא או לכתוב רק בשרת המטא-נתונים שלה. מכונות וירטואליות אחרות לא יכולות לגשת לשרת המטא-נתונים של מכונה וירטואלית אחרת.
מחוץ ל-VM
כדי להפעיל מאפייני אורח או כדי להציג מאפייני אורח מחוץ למכונה הווירטואלית באמצעות Google Cloud CLI או REST, צריך את התפקידים וההרשאות הבאים: אי אפשר להגדיר או למחוק מאפייני אורח מחוץ למכונה וירטואלית.
כדי לוודא שלמשתמש או לחשבון השירות שלכם יש את ההרשאות הנדרשות להפעלה או להצגה של מאפייני אורח, צריך לבקש מהאדמין להקצות למשתמש או לחשבון השירות את תפקיד ה-IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) במכונה הווירטואלית או בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות להפעלה או לצפייה במאפייני אורח. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להפעיל את התכונות של משתתפים או להציג אותן, נדרשות ההרשאות הבאות:
-
כדי להפעיל מאפיינים של מערכת ההפעלה האורחת:
compute.instances.setMetadataבמכונה הווירטואלית או בפרויקט -
כדי לראות את מאפייני האורח:
compute.instances.getGuestAttributesבמכונה הווירטואלית או בפרויקט
יכול להיות שהאדמין יוכל גם להעניק למשתמש או לחשבון השירות שלכם את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
מתי כדאי להשתמש במאפייני אורח
משתמשים במאפייני אורח רק בתרחישי שימוש שבהם נדרשות כמויות קטנות של נתונים שלא משתנים לעיתים קרובות. התרחישים לדוגמה הטובים ביותר לשימוש במאפייני אורח הם אלה עם המאפיינים הבאים:
- הגודל המקסימלי של כל ערך מאפיין הוא 256KiB.
- הגודל המקסימלי של כל מפתח מאפיין הוא 128 בייט.
- מספר השאילתות מוגבל ל-10 שאילתות לכל היותר בדקה לכל מכונה וירטואלית.
- השאילתות לא חורגות מפרץ של 3 שאילתות לשנייה. אם חורגים מהקצב המקסימלי הזה, יכול להיות ש-Compute Engine יסיר באופן שרירותי מאפייני אורח שנמצאים בתהליך כתיבה. הסרת הנתונים הזו נדרשת כדי לוודא שניתן לכתוב בשרת נתונים קריטיים אחרים של המערכת.
מאפייני אורח מתאימים למצבים שבהם צריך לפרסם נתונים לא תדירים ובנפח נמוך. לדוגמה, מאפייני אורח מתאימים לתרחישי השימוש הבאים:
- סקריפטים לטעינה בזמן ההפעלה שיכולים לסמן אתחול מוצלח על ידי הגדרת ערך סטטוס מותאם אישית במאפיינים של האורח.
- סוכני ניהול הגדרות שיכולים לפרסם שם וגרסה של מערכת הפעלה של אורח במאפייני האורח.
- סוכני ניהול מלאי שיכולים לפרסם רשימה של חבילות שהותקנו במופע של מכונה וירטואלית במאפייני האורח.
- תוכנה לניהול עומסי עבודה שיכולה לסמן את השלמת הפעולה במכונה האורחת למישור הבקרה של התוכנה, על ידי הגדרת ערך סטטוס מותאם אישית במאפיינים של המכונה האורחת.
מאפייני אורחים לא מחליפים את הזרמת האירועים, את Pub/Sub או צורות אחרות של מאגרי נתונים ומאגרי הגדרות.
מאפייני אורחים ושירותים אחרים Cloud de Confiance by S3NS
שירותים אחרים של Cloud de Confiance by S3NS משתמשים במאפייני האורח באופן הבא:
- אבטחת SSH: אם התכונה 'מאפייני אורח' מופעלת והתכונה 'כניסה למערכת ההפעלה' מושבתת, סביבת האורח וה-CLI של gcloud משתמשים במאפייני אורח כדי לשפר את אבטחת ה-SSH. הם עושים זאת באמצעות Google API כדי לאחזר מפתחות מארח לפני שמתחברים ל-VM באמצעות SSH.
- VM Manager: סוכן OS config מפרסם נתונים של מערכת ההפעלה במאפייני האורח.
כדי לבדוק את רשומות המטא-נתונים שמאוחסנות בשירותים האלה, אפשר לעיין במאמר מפתחות מטא-נתונים מוגדרים מראש של מאפייני אורח.
הפעלת מאפייני אורח במכונה הווירטואלית
כברירת מחדל, מאפייני האורחים מושבתים. כדי להפעיל מאפייני אורח, צריך להגדיר את ערכי המטא-נתונים הנדרשים במכונות הווירטואליות הספציפיות או במטא-נתונים ברמת הפרויקט:
המסוף
מגדירים את enable-guest-attributes במטא-נתונים של המכונה כשיוצרים מכונה וירטואלית:
נכנסים לדף Create an instance במסוף Cloud de Confiance .
מציינים את פרטי המכונה הווירטואלית.
מרחיבים את הקטע אפשרויות מתקדמות ומבצעים את הפעולות הבאות:
- מרחיבים את הקטע ניהול.
בקטע Metadata (מטא-נתונים), לוחצים על Add item (הוספת פריט) ומוסיפים את רשומות המטא-נתונים הבאות:
- מקרא:
enable-guest-attributes - ערך:
TRUE
- מקרא:
כדי ליצור את המכונה הווירטואלית (VM), לוחצים על האפשרות Create.
מגדירים את enable-guest-attributes במטא-נתונים ברמת הפרויקט כדי שההגדרה תחול על כל המכונות הווירטואליות בפרויקט:
נכנסים לדף Metadata במסוף Cloud de Confiance .
לוחצים על Edit.
מוסיפים רשומה של מטא-נתונים שבה המפתח הוא
enable-guest-attributesוהערך הואTRUE. אפשר גם להגדיר את הערך ל-FALSEכדי להשבית את התכונה.לוחצים על שמירה כדי להחיל את השינויים.
הגדרת enable-guest-attributes במטא-נתונים של מכונה וירטואלית קיימת:
- נכנסים לדף VM instances במסוף Cloud de Confiance .
- לוחצים על שם המכונה הווירטואלית שרוצים להגדיר בה את ערך המטא-נתונים.
- בראש דף פרטי המופע, לוחצים על עריכה כדי לערוך את הגדרות המופע.
- בקטע מטא-נתונים בהתאמה אישית, מוסיפים רשומה של מטא-נתונים שבה המפתח הוא
enable-guest-attributesוהערך הואTRUE. אפשרות אחרת היא להגדיר את הערךFALSEכדי לא לכלול את המכונה הווירטואלית בתכונה. - בחלק התחתון של דף פרטי המופע, לוחצים על שמירה כדי להחיל את השינויים על המכונה הווירטואלית.
gcloud
מגדירים את enable-guest-attributes במטא-נתונים של המכונה כשיוצרים מכונה וירטואלית:
משתמשים בפקודה gcloud compute instances create ב-Google Cloud CLI ומגדירים את enable-guest-attributes=TRUE כדי להפעיל את מאפייני האורח. מחליפים את VM_NAME בשם של המכונה הווירטואלית.
gcloud compute instances create VM_NAME \
--metadata=enable-guest-attributes=TRUEמגדירים את enable-guest-attributes במטא-נתונים ברמת הפרויקט כדי שההגדרה תחול על כל המכונות הווירטואליות בפרויקט:
משתמשים בפקודה project-info add-metadata ב-Google Cloud CLI ומגדירים את enable-guest-attributes=TRUE כדי להפעיל את מאפייני האורח:
gcloud compute project-info add-metadata \
--metadata=enable-guest-attributes=TRUE
אפשרות אחרת היא להגדיר את enable-guest-attributes לערך FALSE כדי להשבית את מאפייני האורח.
הגדרת enable-guest-attributes במטא-נתונים של מכונה וירטואלית קיימת:
משתמשים בפקודה instances add-metadata ב-Google Cloud CLI ומגדירים את enable-guest-attributes=TRUE כדי להפעיל את מאפייני האורח. מחליפים את VM_NAME בשם של המכונה הווירטואלית.
gcloud compute instances add-metadata VM_NAME \
--metadata=enable-guest-attributes=TRUEלחלופין, אפשר להגדיר את enable-guest-attributes לערך FALSE כדי למנוע מהמכונה הווירטואלית להשתמש במאפייני אורח.
הגדרת מאפייני אורח
כל תהליך שפועל במופע של מכונה וירטואלית יכול לכתוב לערכים של מאפייני האורח, כולל סקריפטים ואפליקציות שאין להם הרשאות ברמת sudo או ברמת אדמין. משתמשים או חשבונות שירות מחוץ למכונה הווירטואלית לא יכולים לכתוב ערכים של מטא-נתונים של מאפייני אורח.
מכונות וירטואליות של Linux
לדוגמה, אפשר להשתמש בבקשת curl מתוך המכונה הווירטואלית כדי לכתוב ערך לנתיב המטא-נתונים guest-attributes:
curl -X PUT --data "VALUE" http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY -H "Metadata-Flavor: Google"
מחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE: קיבוץ לוגי שלKEY. מאפייני האורח חייבים לכלול מרחב שמות. -
VALUE: הערך שרוצים לכתוב. -
KEY: הנתיב למטא-נתונים בתוךguest-attributesשבו הערך מאוחסן.
בשדות NAMESPACE ו-KEY, אפשר להשתמש רק באותיות, בספרות, בקו תחתון (_) ובמקף (-).
מכונות וירטואליות של Windows
לדוגמה, אפשר להשתמש בבקשת Invoke-RestMethod מתוך המכונה הווירטואלית כדי לכתוב ערך לנתיב המטא-נתונים guest-attributes:
PS C:\>
$value = (Invoke-RestMethod `
-Method PUT -Body "VALUE" `
-Headers @{'Metadata-Flavor' = 'Google'} `
-Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY")
$value
מחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE: קיבוץ לוגי שלKEY. מאפייני האורח חייבים לכלול מרחב שמות. -
VALUE: הערך שרוצים לכתוב. -
KEY: הנתיב למטא-נתונים בתוךguest-attributesשבו הערך מאוחסן.
בשדות NAMESPACE ו-KEY, אפשר להשתמש רק באותיות, בספרות, בקו תחתון (_) ובמקף (-).
קבלת מאפייני אורח
משתמשים או חשבונות שירות יכולים לקרוא מאפייני אורח מחוץ למכונה וירטואלית אם יש להם את התפקיד הנדרש. לחלופין, כל משתמש או אפליקציה במכונה הווירטואלית יכולים לקרוא את ערכי המטא-נתונים של אותה מכונה וירטואלית ספציפית.
כל תהליך שפועל במכונה הווירטואלית יכול לכתוב לערך של מאפייני האורח, כולל סקריפטים ואפליקציות שאין להם הרשאות ברמת sudo או ברמת האדמין.
שליחת שאילתה לשרת המטא-נתונים
כדי לשלוח שאילתה לגבי מאפייני אורח מתוך מכונה וירטואלית, פועלים לפי ההוראות הבאות.
מתחברים ל-VM.
שליחת שאילתה לגבי מאפייני האורחים.
מכונות וירטואליות של Linux
לדוגמה, אפשר להשתמש בבקשת
curlמתוך המכונה הווירטואלית כדי לקרוא ערך מנתיב המטא-נתוניםguest-attributes:curl http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY -H "Metadata-Flavor: Google"
מחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE: מרחב השמות שלguest-attributesהמפתח שרוצים לשלוח לגביו שאילתה. -
KEY: הנתיב בתוךguest-attributesשממנו רוצים לקרוא את ערך המטא-נתונים.
לחלופין, אפשר להחזיר את כל ערכי מאפייני האורח בבקשה אחת. מחליפים את
NAMESPACEבמרחב השמות של המפתחguest-attributesשרוצים לשלוח לגביו שאילתה.curl http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/ -H "Metadata-Flavor: Google"
מכונות וירטואליות של Windows
לדוגמה, אפשר להשתמש בבקשת
Invoke-RestMethodמתוך המכונה הווירטואלית כדי לקרוא ערך מנתיב המטא-נתוניםguest-attributes:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY") $valueמחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE: מרחב השמות שלguest-attributesהמפתח שרוצים לשלוח לגביו שאילתה. -
KEY: הנתיב בתוךguest-attributesשממנו רוצים לקרוא את ערך המטא-נתונים.
לחלופין, אפשר להחזיר את כל ערכי מאפייני האורח בבקשה אחת. מחליפים את
NAMESPACEבמרחב השמות של המפתחguest-attributesשרוצים לשלוח לגביו שאילתה.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/") $value-
שימוש ב-Google Cloud CLI או ב-REST
כדי לראות את מאפייני האורח מחוץ למכונה וירטואלית, פועלים לפי ההוראות הבאות.
gcloud
משתמשים ב-Google Cloud CLI כדי לקרוא את ערכי המטא-נתונים של מאפייני האורח של מכונה וירטואלית. לדוגמה, אפשר לאחזר את כל הערכים של מכונה וירטואלית באופן הבא:
gcloud compute instances get-guest-attributes VM_NAME \
--zone=ZONEכדי לאחזר את כל הערכים במרחב שמות מסוים, צריך לכלול את הדגל --query-path ואת מרחב השמות שהגדרתם:
gcloud compute instances get-guest-attributes VM_NAME \
--query-path=NAMESPACE \
--zone=ZONEכדי לאחזר את כל הערכים במרחב שמות ספציפי, צריך לכלול את הדגל --query-path, את מרחב השמות ואת המפתח של הערך שהגדרתם:
gcloud compute instances get-guest-attributes VM_NAME \
--query-path=NAMESPACE/KEY \
--zone=ZONEמחליפים את מה שכתוב בשדות הבאים:
-
VM_NAME: השם של המכונה הווירטואלית שממנה רוצים לקרוא את ערך המטא-נתונים של מאפיין האורח -
NAMESPACE: מרחב השמות שלguest-attributesהמפתח שרוצים לשלוח לגביו שאילתה -
KEY: הנתיב במטא-נתונים שלguest-attributesשבו הערך מאוחסן -
ZONE: האזור שבו נמצאת המכונה הווירטואלית
REST
משתמשים בשיטה compute.instances.getguestattributes:
GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=NAMESPACE/KEY
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
ZONE: האזור שבו נמצאת המכונה הווירטואלית -
VM_NAME: השם של מכונת ה-VM שממנה רוצים לקרוא את ערך המטא-נתונים של מאפיין האורח -
NAMESPACE: מרחב השמות שלguest-attributesהמפתח שרוצים לשלוח לגביו שאילתה -
KEY: הנתיב במטא-נתונים שלguest-attributesשבו הערך מאוחסן
כדי לאחזר את כל המפתחות של NAMESPACE, משמיטים את KEY:
GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=NAMESPACE
כדי לאחזר את כל המפתחות בכל מרחב שמות במכונה הווירטואלית, משמיטים את NAMESPACE:
GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=
לחלופין, אם יש לכם טוקן OAuth, אתם יכולים להשתמש ב-curl:
curl -H "Authorization: Bearer OAUTH_TOKEN" https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=NAMESPACE/KEY
מחליפים את מה שכתוב בשדות הבאים:
-
OAUTH_TOKEN: טוקן OAuth -
PROJECT_ID: מזהה הפרויקט -
ZONE: האזור שבו נמצאת המכונה הווירטואלית -
VM_NAME: השם של מכונת ה-VM שממנה רוצים לקרוא את ערך המטא-נתונים של מאפיין האורח -
NAMESPACE: מרחב השמות שלguest-attributesהמפתח שרוצים לשלוח לגביו שאילתה -
KEY: הנתיב במטא-נתונים שלguest-attributesשבו הערך מאוחסן
מחיקת מאפייני אורח
כדי להסיר מאפייני אורח מתוך מכונה וירטואלית, פועלים לפי ההוראות הבאות.
מתחברים ל-VM.
מחיקת מאפייני האורח.
מכונות וירטואליות של Linux
אפשר גם למחוק מאפייני אורחים. לדוגמה, משתמשים בפקודה
curlכדי למחוק מפתח ספציפי:curl -X DELETE http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY -H "Metadata-Flavor: Google"
מחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE: מרחב השמות של מפתחguest-attributesשרוצים למחוק -
KEY: הנתיב בתוךguest-attributesשבו הערך מאוחסן
מכונות וירטואליות של Windows
אפשר גם למחוק מאפייני אורחים. לדוגמה, כדי למחוק מפתח ספציפי, משתמשים בפקודה
Invoke-RestMethod:PS C:\> $value = (Invoke-RestMethod ` -Method DELETE ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY") $valueמחליפים את מה שכתוב בשדות הבאים:
-
NAMESPACE: מרחב השמות של מפתחguest-attributesשרוצים למחוק -
KEY: הנתיב בתוךguest-attributesשבו הערך מאוחסן
-
השבתת מאפייני משתמשים חיצוניים בארגון או בתיקייה
אם אתם לא רוצים שאף אחת מהמכונות הווירטואליות בארגון או בתיקייה תפעיל את התכונה 'מאפייני אורח', אתם יכולים לבטל את ההגדרה ולהשבית את התכונה לחלוטין.
מגדירים את האילוץ constraints/compute.disableGuestAttributesAccess בארגון או בתיקייה, ומחליפים את PROJECT_ID בשם הפרויקט:
gcloud resource-manager org-policies enable-enforce \
constraints/compute.disableGuestAttributesAccess \
--project=PROJECT_IDמידע נוסף על הגדרה וניהול של אילוצים בארגונים זמין במאמר בנושא שימוש באילוצים.