במסמך הזה מוסברת הפונקציונליות העיקרית של סוכן האורח, רכיב קריטי בסביבת האורח. סביבת האורח מכילה סקריפטים, תהליכי רקע וקבצים בינאריים שהמכונות צריכות כדי לפעול ב-Compute Engine. מידע נוסף זמין במאמר בנושא סביבת אורח.
איך סוכן האורחים עובד
החל מגרסה 20250901.00, סוכן האורח משתמש בארכיטקטורה מבוססת-תוספים. העיצוב הזה משפר את האמינות והגמישות
על ידי הפרדה של הפונקציות של הסוכן לרכיבים נפרדים.
ארכיטקטורת הסוכן האורח מורכבת מכמה רכיבים מרכזיים:
- Guest agent manager: התהליך המרכזי במופע שמתחיל, מפסיק ועוקב אחרי כל הפלאגינים.
- פלאגין ליבה: הפלאגין הזה מטפל בשירותים החיוניים שהמופע צריך כדי לפעול ב- Cloud de Confiance by S3NS. אי אפשר להשבית את הפונקציונליות שלו.
- תוספים (פלאגינים אופציונליים): אלה פלאגינים שמשלבים את המופע עם שירותים אחרים של Cloud de Confiance by S3NS , כמו Cloud Monitoring. אתם יכולים לקבוע אילו תוספים יפעלו במופע באמצעות VM Extension Manager.
- VM Extension Manager: זהו שירות מנוהל Cloud de Confiance by S3NS שפועל בתשתית העורפית של Google ומנהל את מחזור החיים של תוספים אופציונליים, כולל ההתקנה והעדכונים שלהם.
מידע נוסף על הארכיטקטורה של סוכן האורח זמין במאמר מידע על סוכן האורח.
רצף ההפעלה ויחסי התלות
מנהל סוכן האורח פועל לפי רצף הפעלה ספציפי כדי לוודא שהמופע מוגדר בצורה נכונה להפעלה ב-Compute Engine. מיד אחרי שהתהליך מתחיל, מנהל הסוכנים מפעיל את תוסף הליבה, רכיב ייעודי שמטפל במשימות בסיסיות בסביבת האורח.
Linux
במופעי Linux, סוכן האורח פועל כשירות systemd בשם
google-guest-agent-manager.service. רצף ההפעלה כולל את השלבים הבאים:
- הגדרת תלות ברשת: השירות
google-guest-agent-manager.serviceמתחיל אחרי יעד המערכתnetwork-online.target. כך מוודאים שיש קישוריות בסיסית לרשת לפני שהסוכן מתקשר עם שרת המטא-נתונים או מבצע שלבי הגדרה אחרים. פרטים על ההטמעה מופיעים בקובץ התצורה של יחידת השירות google-guest-agent-manager.service. - שליחת התראה על מוכנות: סוכן האורח מריץ את השלבים המינימליים הנדרשים להגדרה ואז משתמש ב-
systemd-notify --readyכדי להודיע למערכת שהוא פועל באופן מלא ומוכן לשרת רכיבים אחרים. הסוכן מבצע את השלבים המינימליים הבאים שנדרשים להגדרה:
Windows
במופעי Windows, סוכן האורח פועל כשירות Windows בשם GCEAgentManager. רצף ההפעלה כולל את השלבים הבאים:
- הפעלה של אתחול מושהה: סוג האתחול של השירות מוגדר כאוטומטי (התחלה מושהית). כך שירותי מערכת ההפעלה העיקריים יאותחלו קודם, וזה יצמצם את התחרות על משאבים במהלך שלב האתחול הראשוני. פרטים על ההטמעה זמינים בסקריפט להתקנת השירות.
- הגדרת סטטוס השירות: הסוכן מפעיל את ההגדרה המינימלית הנדרשת ואז מגדיר את סטטוס השירות
SERVICE_RUNNINGכדי להודיע למערכת שהוא פועל באופן מלא ומוכן לשרת רכיבים אחרים. הסוכן מבצע את פעולות ההגדרה המינימליות הנדרשות הבאות:
שיטות מומלצות לתהליכים תלויים
אם יש לכם שירותים או סקריפטים בהתאמה אישית שתלויים בתכונות של סוכן האורח, כמו אתחול של אישורי MDS, אתם צריכים להגדיר תלות מפורשת בהפעלה כדי לוודא שהם יופעלו רק אחרי שהסוכן יהיה פעיל.
Linux
מוסיפים תלות בשירות systemd של סוכן האורח בקובץ היחידה, למשל:
[Unit] After=google-guest-agent-manager.service
Windows
מוסיפים תלות בשירות Windows של סוכן האורח באמצעות service control כמו:
sc config "CustomService" depend= "GCEAgentManager"
פונקציונליות עיקרית
התוסף המרכזי אחראי לשירותים הבסיסיים שהמכונה צריכה כדי לפעול ב-Compute Engine. בקטע הבא מפורטות הפונקציות שהתוסף הראשי מספק. אפשר להתאים אישית הרבה מהתכונות האלה באמצעות קובץ התצורה של סוכן האורח.
הגדרה ראשונית של מופע ואופטימיזציות
סוכן האורח מבצע כמה משימות הגדרה כדי להכין את המכונה להפעלה ב-Compute Engine. כפי שמוצג בטבלה הבאה, חלק מהמשימות מופעלות רק באתחול הראשון, ואחרות מופעלות בכל הפעלה.
| משימה | תדירות |
|---|---|
| יצירת מפתחות מארח של SSH | באיתחול הראשון |
יצירת קובץ ההגדרות boto לשימוש ב-Cloud Storage |
באיתחול הראשון |
| אופטימיזציה ל-SSD מקומי | בכל הפעלה |
הפעלת תור מרובה בכל מכשירי virtionet |
בכל הפעלה |
אפשר לשלוט במשימות ההגדרה האלה על ידי הגדרת האפשרויות InstanceSetup בקובץ התצורה של סוכן האורח. לדוגמה, אפשר להשבית את האופטימיזציה של Local SSD על ידי הגדרת optimize_local_ssd = false.
איסוף נתוני טלמטריה של המערכת
סוכן האורח מתעד מידע טלמטרי בסיסי של המערכת בזמן האתחול, ואז פעם ב-24 שעות. המידע שמתועד כולל את הפרטים הבאים:
- הגרסה והארכיטקטורה של סוכן האורח
- השם והגרסה של מערכת ההפעלה
- גרסת הליבה של מערכת ההפעלה
כדי להשבית את איסוף נתוני הטלמטריה, צריך להגדיר את מפתח המטא-נתונים disable-guest-telemetry לערך true. במאמר הגדרת מטא-נתונים מותאמים אישית והסרתם מוסבר איך מגדירים מטא-נתונים.
סנכרון השעון (ב-Linux בלבד)
כדי להבטיח תזמון מדויק, סוכן האורח משתמש ברכיב clock_skew_daemon כדי לתקן מעת לעת את השעון במופע כך שיתאים לשרת הפיזי שבו הוא פועל. התהליך הזה מונע בעיה שנקראת הטיה בשעון, ויוצר הודעה מסוג system time has changed ביומני המופעים, שמאשרת שהשעה סונכרנה בהצלחה.
אם האפשרות הזו מופעלת, הסוכן מסנכרן את השעון בדרך כלל אחרי אירוע עצירה או התחלה, או אחרי העברה. עם זאת, אם השעון בזמן אמת (RTC) במופע שלכם מוגדר להשתמש באזור הזמן המקומי במקום ב-UTC, הסוכן מזהה את ההגדרה הזו באופן אוטומטי ומשבית את סנכרון השעון כדי למנוע חוסר עקביות פוטנציאלי.
הסוכן מבצע את הסנכרון מחדש על ידי הרצת הפקודה הבאה:
/sbin/hwclock --hctosys -u --noadjfile.
כדי להשבית את הרכיב clock_skew_daemon, צריך להגדיר את clock_skew_daemon = false בקובץ התצורה של סוכן האורח.
הרצת סקריפט של מטא-נתונים
אתם יכולים להשתמש בסקריפטים לטעינה בזמן ההפעלה ובסקריפטים לכיבוי כדי לבצע משימות אוטומטיות בכל פעם שהמופע מופעל או מושבת.
הסוכן האורח עוזר בהרצת הסקריפטים האלה באופן הבא:
- הפעלת סקריפטים במעטפת.
- אם מציינים כמה סקריפטים (לדוגמה, אם משתמשים גם ב-
startup-scriptוגם ב-startup-script-url), הסוכן מריץ את שניהם. - אם מספקים כמה סקריפטים לאותו אירוע, הסוכן מריץ קודם את הסקריפט מכתובת ה-URL.
- אחרי שסקריפט מסתיים, הסוכן מתעד את סטטוס היציאה שלו.
אפשר להגדיר את ההרצה של סקריפטים של מטא-נתונים על ידי שינוי האפשרויות MetadataScripts בקובץ התצורה של סוכן האורח.
ניהול חשבונות משתמשים ומפתחות SSH
סוכן האורח משתמש ב-accounts_daemon כדי לנהל חשבונות משתמשים מקומיים ומפתחות SSH, ששולטים בגישה למופע.
ההתנהגות הספציפית משתנה בין מערכות הפעלה של Linux ושל Windows.
אפשר לשנות את אפשרויות ניהול החשבונות על ידי הגדרת האפשרויות Accounts בקובץ התצורה של סוכן האורח.
Linux
שירות OS Login משמש לניהול גישת SSH למכונות באמצעות IAM, בלי שתצטרכו ליצור ולנהל מפתחות SSH נפרדים. מידע נוסף על OS Login זמין במאמר OS Login. במופעי Linux, אם OS Login לא מופעל, הסוכן יוצר ומנהל חשבונות משתמשים מקומיים ואת מפתחות ה-SSH שלהם באמצעות הגדרות מטא-נתונים.
כשמוסיפים או מסירים מפתחות SSH מהמטא-נתונים של המכונה או הפרויקט, סוכן האורח יוצר או מוחק חשבון משתמש מקומי. הסוכן האורח מבצע גם את הפעולות הבאות כדי לנהל את חשבונות המשתמשים המקומיים האלה:
- הכלי שומר את קובץ
authorized_keysלכל חשבון משתמש שהוא מנהל באופן הבא:- כשמוסיפים מפתחות SSH למטא-נתונים, הסוכן יוצר קובץ
authorized_keysעבור חשבון המשתמש. - כשמסירים את כל מפתחות ה-SSH של משתמש ממטא-נתונים, הסוכן מוחק את הקובץ
authorized_keysשל חשבון המשתמש הזה.
- כשמוסיפים מפתחות SSH למטא-נתונים, הסוכן יוצר קובץ
- ניהול הרשאות אדמין באמצעות קבוצת Linux
google-sudoers. כל חבר בקבוצה הזו מקבל הרשאות sudo במופע. - כל חשבונות המשתמשים שהוא מקצה מתווספים לקבוצה
google-sudoers. - מוסיף חשבונות משתמשים לכל קבוצות Linux נוספות שציינתם באפשרות
groupsשל קובץ התצורה של סוכן האורח.
Windows
במכונות Windows, הסוכן יוצר באופן אוטומטי חשבונות משתמשים מקומיים לכל חשבון משתמש SSH שצוין במטא-נתונים של מפתחות SSH ברמת המכונה או הפרויקט. הסוכן האורח גם מטפל ביצירת חשבונות משתמשים ובהגדרת סיסמאות או באיפוס שלהן. חשבונות המשתמשים המקומיים האלה נדרשים כדי להתחבר למופעי Windows באמצעות SSH.
כדי למנוע הקצאת משתמשים לא מכוונת ב-AD, אפשר להשבית את מנהל החשבונות במופע של בקר ה-AD. מידע נוסף על הגדרת AD ב-Compute Engine זמין במאמר בנושא פריסת בקרי דומיין.
הגדרת OS Login (ל-Linux בלבד)
שירות OS Login משמש לניהול גישת SSH למכונות באמצעות IAM, בלי שתצטרכו ליצור ולנהל מפתחות SSH נפרדים. מידע נוסף על OS Login זמין במסמכי התיעוד של OS Login.
כשמפעילים את OS Login, סוכן האורח אחראי להגדרת המופע לשימוש ב-OS Login.
האדמין של האורח מגדיר את OS Login על ידי ביצוע המשימות הבאות:
- מוסיף בלוק הגדרות של Google לקובץ התצורה
SSHDומפעיל מחדש אתSSHD. - מוסיף רשומות של OS Login לקובץ
nsswitch.conf. - מוסיף רשומות של OS Login לקובץ התצורה
PAMשלSSHD.
אם משביתים את OS Login, השינויים בהגדרות מוסרים. האפשרויות בקטע Accounts של קובץ התצורה SSHD לא חלות על משתמשים ב-OS Login.
ניהול רשתות
סוכן האורח מגדיר אוטומטית את ממשקי הרשת של המופע בזמן האתחול. הוא קורא את הגדרת הרשת משרת המטא-נתונים כדי לוודא שהמופע מתחבר לרשת בצורה נכונה ויכול לגשת לשירותים אחרים של Cloud de Confiance by S3NS.
אפשר לקבוע את אופן ההתנהגות של ניהול הרשת של הסוכן על ידי הגדרת האפשרויות NetworkInterfaces בקובץ התצורה של הסוכן לאורח. לדוגמה, אפשר להגדיר את האפשרות manage_primary_nic = true כדי שהסוכן ינהל את כרטיס הרשת (NIC) הראשי בנוסף לכרטיסי רשת משניים.
בכל אתחול, סוכן האורח מבצע את המשימות העיקריות הבאות:
- הפעלת ממשקי רשת: הסוכן מזהה את מנהל הרשת הפעיל במערכת ההפעלה ומשתמש בו כדי להפעיל את כל כרטיסי ה-NIC המשניים ברשת.
- הגדרת נתיבי IP: הסוכן מגדיר את נתיבי ה-IP (IPv4 בלבד) הנדרשים לתכונות כמו העברת IP וטווחי IP של כינויים באופן הבא:
- הגדרת מסלולים בממשק ה-Ethernet הראשי.
- הגדרת מסלולי Google כברירת מחדל, עם מזהה פרוטוקול הניתוב
66. המזהה הזה הוא מרחב שמות לכתובות IP שהוגדרו לסוכן האורח. אפשר לשנות את המזהה הזה באמצעות האפשרותethernet_proto_idבקובץ התצורה של סוכן האורח.
- יצירת נתיב לשרת המטא-נתונים: הסוכן מוודא שכרטיס ה-NIC הראשי יכול תמיד לתקשר עם שרת המטא-נתונים כדי לקבל מידע על המופע.
- הגדרת VLAN: אם המכונה שלכם מוגדרת להתחבר לרשת מקומית וירטואלית (VLAN), סוכן האורח מטפל בהגדרה באופן אוטומטי. הוא קורא את הגדרת ה-VLAN משרת המטא-נתונים ומגדיר את ממשק הרשת בתוך המכונה כך שישתמש בתג ה-VLAN הנכון. כך מוודאים שהמופע מתקשר ברשת הלוגית המיועדת. חשוב לדעת: אם ה-VLAN מצורף ל-NIC הראשי, סוכן האורח מגדיר אותו גם אם
manage_primary_nicמושבת.
בחירת מנהל רשת
ב-Linux, סוכן האורח מזהה באופן אוטומטי את מנהל הרשת שזמין במערכת ומשתמש בו כדי להגדיר את ממשקי הרשת. הסוכן בודק אם יש מנהלים נתמכים לפי סדר העדיפות, מ-netplan עד dhclient.
בטבלה הבאה מפורטים מנהלי הרשת הנתמכים, לפי מערכת ההפעלה שהם משויכים אליה בדרך כלל כברירת מחדל. יכול להיות שההגדרה של המופע הספציפי שלכם תהיה שונה, אבל הטבלה הזו משקפת את מנהל הרשת שמוגדר כברירת מחדל למערכות ההפעלה שמופיעות בה.
| ניהול רשתות | מערכת הפעלה | מיקום ההגדרה | נתיב לדוגמה | הערות |
|---|---|---|---|---|
netplan |
|
/run/netplan/ |
/run/netplan/20-google-guest-agent-eth0.yaml |
יכול להיות שהנציג ישתמש גם במיקום לשיחות מזדמנות בכתובת
/etc/systemd/network/ |
wicked |
|
/etc/sysconfig/network/ |
/etc/sysconfig/network/ifcfg-eth0 |
קבצים קיימים בפורמט ifcfg לא נמחקים, אלא המערכת מדלגת עליהם. |
NetworkManager |
|
/etc/NetworkManager/system-connections/ |
/etc/NetworkManager/system-connections/google-guest-agent-eth0.nmconnection |
|
systemd-networkd |
|
/usr/lib/systemd/network/ |
/usr/lib/systemd/network/20-eth0-google-guest-agent.network |
|
dhclient |
|
/run/ |
/run/dhclient.google-guest-agent.eth0.ipv4.pid |
אם לא מזוהים מנהלי רשת אחרים, סוכן האורח משתמש כברירת מחדל ב-dhclient. |
ניהול מאובטח של פרטי כניסה לשרת מטא-נתונים (MDS)
מכונות וירטואליות מוגנות תומכות עכשיו בתקשורת מאובטחת עם שרת המטא-נתונים באמצעות נקודת הקצה של HTTPS https://metadata.google.internal/computeMetadata/v1. השיפור הזה מספק ערוץ מאובטח יותר לגישה למטא-נתונים.
כדי להפעיל את התקשורת המאובטחת הזו, סוכן האורח מאחזר ומאחסן את פרטי הכניסה הדרושים בדיסק של המופע. פרטי הכניסה האלה נשמרים במיקום סטנדרטי, כך שכל אפליקציית לקוח שפועלת במופע יכולה לגשת אליהם. כדי לבדוק את המיקומים האלה, אפשר לעיין במאמר איפה נשמרים האישורים.
אישורי HTTPS MDS מופעלים כברירת מחדל החל מגרסה 20260228.00 של סוכן האורח. בגרסאות קודמות של סוכן האורח, כדי להגדיר באופן אוטומטי אישורי HTTPS MDS במכונות וירטואליות מוגנות, צריך להגדיר את מפתח המטא-נתונים disable-https-mds-setup לערך false במופע או בפרויקט.
במאמר הגדרת מטא-נתונים מותאמים אישית והסרתם מוסבר איך מגדירים מטא-נתונים.
ניהול פרטי הכניסה על ידי סוכן האורח כולל:
- עדכון ראשוני: גם אישור הבסיס וגם פרטי הכניסה של הלקוח מתעדכנים בכל פעם שתהליך הסוכן של האורח מתחיל.
- רענון אוטומטי: כדי לשפר את האבטחה, סוכן האורח מרענן באופן אוטומטי את פרטי הכניסה של הלקוח כל 48 שעות.
- תקופת חפיפה: הסוכן יוצר ושומר פרטי כניסה חדשים בזמן שפרטי הכניסה הישנים עדיין תקפים. תקופת החפיפה מבטיחה שללקוחות יהיה מספיק זמן לעבור לפרטי הכניסה החדשים לפני שתוקף פרטי הכניסה הישנים יפוג. במהלך התקופה החופפת הזו, הסוכן יכול גם לנסות שוב להשיג אישורים במקרה של כשל, כדי לוודא שיש אישורים תקפים לפני שהאישורים הקיימים הופכים ללא תקפים.
- הרכב: סוכן האורח מוודא שפרטי הכניסה של הלקוח מורכבים ממפתח פרטי של EC (עקומה אליפטית) שמשורשר לאישור הלקוח.
- ייחודיות: סוכן האורח מוודא שפרטי הכניסה ייחודיים למופע ולא ניתן להשתמש בהם במקום אחר.
מידע נוסף על נקודת הקצה של שרת המטא-נתונים של HTTPS זמין במאמר מידע על נקודת הקצה של שרת המטא-נתונים של HTTPS.
כברירת מחדל, סוכן האורח כותב את האישורים ישירות לדיסק. עם זאת, אפשר להגדיר את הסוכן כך שישלב אישורים במאגרי האישורים המובנים של מערכת ההפעלה. כדי להפעיל את השילוב הזה, מגדירים את מפתח המטא-נתונים enable-https-mds-native-cert-store לערך true. במאמר הגדרת מטא-נתונים מותאמים אישית והסרתם מוסבר איך מגדירים מטא-נתונים.
ההתנהגות של הסוכן לגבי הוספת אישורים למאגרי אישורים של מערכת ההפעלה משתנה בהתאם למערכת ההפעלה, באופן הבא:
Linux
הסוכן של האורח מבצע את השלבים הבאים:
- הוספת אישור הבסיס של MDS למאגר האישורים של המערכת. הנתיב הספציפי תלוי בהפצת מערכת ההפעלה. מידע נוסף על המיקומים האלה זמין במאמר בנושא אחסון אישורי בסיס במאגר האישורים המהימנים של מערכת ההפעלה.
- מעדכנים את מאגר האישורים המקומי על ידי הפעלת הפקודה המתאימה למערכת ההפעלה, כמו
update-ca-certificatesאוupdate-ca-trust.
Windows
הסוכן מוסיף את פרטי הכניסה של הלקוח ל-Cert:\LocalMachine\My
ואת אישור הבסיס ל-Cert:\LocalMachine\Root.
תמיכה באשכולות יתירות כשל ב-Windows (Windows בלבד)
הסוכן של האורח עוקב אחרי הצומת הפעיל בWindows Server Failover Cluster ומתאם עם מאזן העומסים הפנימי Cloud de Confiance by S3NS כדי להעביר את כל התנועה של האשכול לצומת הצפוי.
כדי לשלוט בהתנהגות הזו, אפשר להשתמש בשדות הבאים במטא-נתונים של המופע או בקובץ instance_configs.cfg:
-
enable-wsfc: אם הערך מוגדר כ-true, הסוכן מתעלם מכל המידע על העברת כתובות IP ומתחיל להגיב ליציאה של בדיקת תקינות. ערך ברירת המחדל הואfalse. -
wsfc-agent-port: מציין את היציאה שבה הסוכן מגיב לבדיקות תקינות. ערך ברירת המחדל הוא59998. -
wsfc-addrs: רשימה מופרדת בפסיקים של כתובות IP. ההגדרה המתקדמת הזו מאפשרת להשתמש בכתובות IP רגילות להעברה ובכתובות IP של אשכול באותו מופע. כשמגדירים את האפשרות הזו, הסוכן מדלג על ההגדרה האוטומטית רק עבור כתובות ה-IP שמופיעות ברשימה הזו. כברירת מחדל, הערך הזה לא מוגדר.
המאמרים הבאים
- מידע נוסף על ניהול סוכן האורח זמין במאמר הגדרת סוכן האורח.