לפני שמתחילים
-
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.
gcloud
-
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud init
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
סקירה כללית
אם שלבי ההתאמה האישית הושלמו בהצלחה, כלי התזמור מייצא את דיסק האתחול של המכונה הווירטואלית כתמונת בדיקה זמנית (בשם image-builder-test-image-BUILD_ID במשפחה image-builder-test-images).
הכלי לניהול תהליכים מפעיל מכונה וירטואלית לבדיקה מהתמונה הזו ומריץ חבילה של בדיקות מערכת. הכלי Image Builder מוציא את תוצאות הבדיקה בפורמט XML רגיל של JUnit ישירות ליומני Cloud Build.
פתרון בעיות בבדיקות אימות ספציפיות
כדאי לעיין בסיבות הנפוצות לכשלים ובשלבי האבחון של כל בדיקת אימות:
אימות מנהל התקן של Intel IDPF
בבדיקה הזו מוודאים שמופעלות מכונות וירטואליות נתמכות שנטען בהן מנהל ההתקן של פונקציית נתיב הנתונים של תשתית Intel (idpf) בחיבורי רשת פיזיים.
- תנאי כשל: האימות של המכונה הווירטואלית נכשל אם היא חוזרת לחבילת מתאם רשת כללית או אם לליבת האורח חסר מודול מנהל ההתקן הפעיל
idpf. - הפתרון:
- מוודאים שלמערכת ההפעלה הבסיסית יש גרסת ליבה שתואמת ל-IDPF.
- מוודאים שכלי רשת רגילים לא מסירים את מנהל ההתקן או לא כוללים אותו ברשימת חסימה.
- בגרסאות ליבה מותאמות אישית, צריך לוודא שההגדרה
CONFIG_IDPFמוגדרת.
אימות של סוכנים אורחים ורשתות
הבדיקה הזו מוודאת שלמופע יש תקשורת תקינה עם האורח והגדרות סטנדרטיות של ממשק הרשת.
- תנאי כשל: הבדיקה נכשלת בכל אחד מהמקרים הבאים:
- במנהל שירותי הסוכן האורח
SubStateלא מוצג סטטוסrunning. - אף ממשק רשת שאינו מסוג loopback לא מחובר לאינטרנט.
- השמות של הממשקים לא תואמים לתבניות הסטנדרטיות הצפויות (לדוגמה,
eth*אוen*).
- במנהל שירותי הסוכן האורח
הפתרון:
מוודאים שהסוכן של האורח מותקן ומוגדר להפעלה בזמן האתחול:
systemctl is-active google-guest-agentמוודאים שהגדרות הרשת (כמו תבניות netplan או ifupdown) לא משביתות את הממשקים הווירטואליים הראשיים.
אימות של הפעלה מאובטחת
בבדיקה הזו מוודאים שההפעלה המאובטחת של UEFI פעילה ושהמערכת אוכפת אימות של חתימת ליבת מערכת ההפעלה של האורח בתמונה.
- תנאי לכישלון: הבדיקה נכשלת אם משתני ה-UEFI של Compute Engine מדווחים על
SecureBootשלא שווה ל-1או עלSetupModeשלא שווה ל-0. הפתרון:
- מוודאים שהתמונה כוללת מפתחות חתימה תקינים.
בקובץ
imagebuilder.yaml, מוודאים שהקטעguestOsFeaturesמכיל אתUEFI_COMPATIBLEמתחת לבלוק היעדים:destinations: - diskImage: guestOsFeatures: - UEFI_COMPATIBLE
השעיה או חידוש של האימות
בבדיקה הזו, המכונה הווירטואלית לבדיקה מושהית באמצעות Compute Engine API, ונבדק שאחרי שהרצת המכונה הווירטואלית מתחדשת, הקישוריות משוחזרת בלי להפעיל מחדש את האורח.
- תנאי הכשל: הבדיקה נכשלת אם המכונה מופעלת מחדש כשהיא מתעוררת, אם היא נתקעת במהלך ההשהיה או אם היא לא מצליחה לשחזר פינגים ברשת.
- הפתרון:
- מוודאים ששירותי ACPI ומדיניות צריכת החשמל במערכת ההפעלה של האורח מופעלים ומוגדרים להגיב לאירועי ACPI.
- בודקים את יומני המערכת של האורח (
/var/log/syslogאו/var/log/messages) כדי לראות אם דמונים מותאמים אישית חוסמים בקשות להעברת המערכת למצב שינה.
דילוג על בדיקות האימות
מומלץ לאמת תמונות של מוצרים בסביבת ייצור, אבל אפשר לדלג על בדיקות אימות במהלך הבדיקה על ידי הגדרת skipSystemTests: true בקטע spec.config בקובץ imagebuilder.yaml:
spec:
config:
skipSystemTests: true