פתרון בעיות בבדיקות אימות

כדי לוודא שתמונות VM בהתאמה אישית מופעלות בצורה תקינה ועומדות בדרישות ההגדרה, Image Builder מפעיל בדיקות אימות אוטומטיות במכונת VM זמנית לבדיקה. אם אחד מהבדיקות האלה נכשל, הצינור נעצר ו-Image Builder לא מפרסם את התמונה הסופית.

לפני שמתחילים

  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.

    gcloud

    1. התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

סקירה כללית

אם שלבי ההתאמה האישית הושלמו בהצלחה, כלי התזמור מייצא את דיסק האתחול של המכונה הווירטואלית כתמונת בדיקה זמנית (בשם image-builder-test-image-BUILD_ID במשפחת image-builder-test-images).

הכלי לניהול תהליכים מפעיל מכונה וירטואלית לבדיקה מהתמונה הזו ומריץ חבילה של בדיקות מערכת. הכלי Image Builder מוציא את תוצאות הבדיקה בפורמט XML רגיל של JUnit ישירות ליומני Cloud Build.

פתרון בעיות בבדיקות אימות ספציפיות

כדאי לעיין בסיבות הנפוצות לכשלים ובשלבי האבחון של כל בדיקת אימות:

אימות דרייבר Intel IDPF

בבדיקה הזו מוודאים שמכונות וירטואליות נתמכות טוענות את מנהל ההתקן של פונקציית נתיב הנתונים של Intel Infrastructure (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