אבחון ותיקון בעיות ב-Git בפרויקטים של LookML

פרויקטים ב-Looker מסתמכים על הגדרות Git יציבות (כמו חיבורים למאגרים מרוחקים, מפתחות פריסה תקינים, מבני מאגרים שלמים והרשאות תקינות במערכת הקבצים). כשמתרחשות בעיות ב-Git, מפתחים ואדמינים יכולים להשתמש בכלי Diagnose & Repair כדי לבדוק את תקינות המאגר, לזהות את שורש הבעיה ולהפעיל תיקונים אוטומטיים.

הכלי Diagnose & Repair מעריך את מאגר הפרויקטים של LookML באמצעות שמונה בדיקות אבחון בסביבת הפיתוח האישית או בסביבת הייצור המשותפת. כשמערכת Looker מוצאת בעיות, היא יכולה לבצע תיקונים מדויקים באופן אוטומטי (למשל, להסיר קבצי נעילה לא פעילים, לתקן הרשאות לקבצים או לתקן אינדקסים פגומים של אובייקטים) או לבנות מחדש מאגרי מידע פגומים, תוך הגנה על שינויים שלא נשמרו בענף שחזור ייעודי.

דרישות מוקדמות והרשאות

כדי להשתמש בכלי Diagnose & Repair של Git, אתם צריכים לעמוד בדרישות ההרשאות הבאות:

  • סביבת פיתוח: נדרשת הרשאת develop לפחות למודל אחד בפרויקט.
  • סביבת ייצור: נדרשת הרשאה deploy לפחות למודל אחד בפרויקט.

הרצת אבחון של Git

כדי לאבחן פרויקט של LookML, פועלים לפי השלבים הבאים:

  1. מפעילים את מצב פיתוח.
  2. בחלונית הניווט, בוחרים באפשרות פיתוח כדי לפתוח את החלונית פיתוח.
  3. בחלונית פיתוח, לוחצים על פרויקטים כדי להציג את הדף פרויקטים של LookML.
  4. פותחים את הפרויקט שרוצים לאבחן.
  5. בתפריט הסמלים של Looker IDE, לוחצים על סמל ההגדרות.
  6. בקטע Git Diagnose and Repair (אבחון ותיקון של Git), לוחצים על Diagnose & Repair (אבחון ותיקון).
  7. בתיבת הדו-שיח אבחון ותיקון, בוחרים את הסביבה שרוצים לבדוק:

    תיבת הדו-שיח 'אבחון ותיקון' עם הסביבה לפיתוח שנבחרה.

    • פיתוח: בדיקה של עותק הפיתוח האישי של מאגר Git.
    • Production: Tests the production copy of the Git repository.
  8. לוחצים על אבחון.

מערכת Looker מפעילה את חבילת מקרים לבדיקה של האבחון ומציגה את ההתקדמות בזמן אמת של כל בדיקה בתיבת הדו-שיח.

דוח אבחון של Git שמציג את הבדיקות שהופעלו ואת תוצאות הבדיקות.

הסבר על תוצאות האבחון

במהלך ההרצה של חבילת מקרים לבדיקה האבחונית, כל בדיקה מדווחת על אחד מהסטטוסים הבאים:

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

הרצת תיקונים אוטומטיים

אם אחת מבדיקות האבחון מחזירה את הסטטוס זוהה והתיקון אוטומטי, אפשר להתחיל את התיקון ישירות מתיבת הדו-שיח:

  1. בתיבת הדו-שיח Diagnose & Repair (אבחון ותיקון), לוחצים על הלחצן Start Repair (התחלת התיקון).
  2. מערכת Looker מבצעת תיקונים אוטומטיים לכל הבעיות שאפשר לתקן.
  3. בסיום תהליך התיקון, תגי הסטטוס מתעדכנים לתוקן אם הבדיקות נפתרו, או לנכשל אם נדרשת התערבות ידנית.

הפניה לבדיקות אבחון ולתיקונים

חבילת מקרים לבדיקה של האבחון בודקת שמונה קטגוריות של בעיות ב-Git. בטבלה הבאה מתואר כל בדיקה, האבחון שלה ופעולת התיקון שבוצעה:

בדיקת אבחון תיאור סוג התיקון פעולות לתיקון
הגדרת Git בודק אם בפרויקט יש את התנאים המוקדמים שנדרשים כדי לאתחל את המאגר שלו (כתובת ה-URL המקורית של Git מרוחק ורשומה פעילה של הגדרת מסד נתונים). באופן ידני אם חסרים ערכים נדרשים, משלימים את ההגדרה הראשונית של Git בהגדרות הפרויקט (הגדרות > הגדרה > הגדרת Git). מידע נוסף זמין בקטע פתרון בעיות בהגדרת Git.
בדיקת חיבור ל-Git מריץ את חבילת מקרים לבדיקה הסטנדרטית של Looker לחיבור Git למאגר המקור המרוחק, ומאמת את פרטי הכניסה, את הנגישות לרשת ואת הרשאות הגישה מרחוק. באופן ידני הגורמים לבעיות בחיבור הם חיצוניים (למשל, מפתחות פריסה של SSH שתוקפם פג, טוקנים של OAuth או של גישה אישית שבוטלו, הגבלות של חומת אש או הפסקות זמניות בשירות של ספק). צריך לפתור את הבעיה שקשורה להרשאה או לרשת ישירות מול ספק Git. מידע נוסף זמין בקטע פתרון בעיות בבדיקת החיבור ל-Git.
גישה למערכת הקבצים מזהה שגיאות קלט/פלט במערכת הקבצים או שגיאות אחסון שמונעות מ-Looker לקרוא רשימות של ספריות או שמות קבצים במאגר הפרויקט. אוטומטי בנייה מחדש של עותק נקי של מאגר הפרויקט מאפס. מבצע ארכיון של הספרייה הישנה לגיבוי מאובטח ושומר את העבודה שלא נשמרה בענף שחזור מרוחק.
Repository Functional State בודקת אם המבנה הפנימי .git קיים ושלם, ומוודאת ש-Git מזהה את הספרייה כעץ עבודה פונקציונלי. אוטומטי הכלי בונה מחדש את מאגר הפרויקט מאפס, משחזר מבנה תקין של ספריית Git ומוסיף את התוכן הקודם לארכיון כדי למנוע אובדן נתונים.
קובץ נעילה של Git סריקות של קבצים ישנים של .lock (כמו נעילות של אינדקס או תצורה) שנשארו אחרי פעולות Git שהופסקו או הסתיימו, וחוסמות פקודות Git עתידיות. אוטומטי הכלי מסיר באופן בטוח קובצי נעילה לא פעילים באופן מיידי, ומבטל את החסימה של פעולות Git בלי לשנות את היסטוריית המאגר או את קובצי העבודה.
הרשאות של אובייקטים סורק קבצים וספריות של פרויקטים כדי למצוא הרשאות למערכת הקבצים שחורגות מהמלצות האבטחה ומהסטנדרטים התפעוליים (לדוגמה, מוודא שלספריות ולסקריפטים יש גישת קריאה והרצה, ולקבצים רגילים אין גישת הרצה). אוטומטי הכלי מבצע נורמליזציה אוטומטית של הרשאות לקבצים ולספריות בפרויקט, ומשחזר הרשאות גישה סטנדרטיות בטוחות בלי לשנות את תוכן הקבצים.
הגדרות Git Config הבדיקה הזו בודקת אם הגדרת ה-Git הפנימית של המאגר תואמת לברירות המחדל הנדרשות של Looker (במיוחד, היא בודקת שמעקב אחר מצב הקובץ core.filemode מושבת, כדי שהבדלים בהרשאות בין מערכות קבצים לא ייצרו שינויים שגויים). אוטומטי העדכון מתבצע בהגדרות המאגר כך שיתאימו להגדרות ברירת המחדל של Looker, וההגדרות המעודכנות נשמרות.
Repository Consistency FSCK מריצים בדיקה של מערכת הקבצים של Git ‏ (git fsck) כדי לבדוק אם יש נזק מבני במסד הנתונים הפנימי של האובייקטים במאגר (כולל קובצי אינדקס פגומים, חתימות מחויבות לא תקינות, מצביעים לאובייקטים לא תקינים, אובייקטים פגומים או הפניות פגומות). אוטומטי תיקון ראשוני: יוצר מחדש את האינדקסים, מסיר יומני הפניות לא עדכניים, מסיר הפניות פגומות ומריץ את הפקודה git fetch --refetch כדי לאחזר אובייקטים חסרים.
יצירה מחדש של גיבוי: אם התיקון הראשוני לא מצליח לפתור את כל השגיאות, המערכת יוצרת מחדש את המאגר בצורה בטוחה ושומרת את העבודה שלא נשמרה בענף שחזור מרוחק.

פתרון בעיות ב-Git שנוצרו באופן ידני

אם בדיקות הגדרת Git או בדיקת החיבור ל-Git מזהות בעיה, התיקון האוטומטי לא זמין כי מקור הבעיה הוא מחוץ למאגר המקומי. כדי לפתור בעיות שדורשות התערבות ידנית, צריך לפעול לפי ההנחיות הבאות:

  • פתרון בעיות בהגדרת Git:

    1. פותחים את הפרויקט בסביבת הפיתוח המשולבת (IDE) של Looker.
    2. בתפריט הסמלים, לוחצים על סמל ההגדרות.
    3. בכרטיסייה Configuration (הגדרה), בוחרים באפשרות Reset Git Connection (איפוס החיבור ל-Git) או באפשרות Configure Git (הגדרת Git) כדי להשלים את הגדרת המאגר. הוראות מפורטות זמינות במאמר בנושא הגדרה ובדיקה של חיבור Git.

  • פתרון בעיות בבדיקת החיבור ל-Git:

    • מפתחות פריסה של SSH: מוודאים שמפתח הפריסה ב-Looker זהה למפתח הציבורי שרשום אצל ספק האירוח של Git, ושהמפתח כולל הרשאת כתיבה. אם צריך, יוצרים מפתח פריסה חדש בהגדרות הפרויקט ומעדכנים את ספק Git.
    • פרטי כניסה ל-HTTPS ואסימוני גישה אישיים: בודקים אם פג התוקף של אסימון הגישה האישי או של הסיסמה לחשבון השירות, או אם הם בוטלו. יוצרים טוקן חדש בספק Git ומעדכנים את פרטי הכניסה ב-Looker.
    • רשימות של כתובות IP מותרות וחומות אש: מוודאים שספק האירוח של Git מאפשר תעבורה נכנסת מכתובות ה-IP של מופע Looker.