ב-Ubuntu Touch שואלים שתי שאלות כשאלה אחת: האם חבילת שולחן העבודה הזו תרוץ, והאם הטלפון יקבל VPN. המכולה עונה על הראשונה. שום דבר בה לא עונה על השנייה, כי למכולה יש תפיסה משל עצמה של מערכת הקבצים, בעוד שמחסנית הרשת והמדיניות שלה שייכות לטלפון. עקבו אחר היכן חי כל חלק לפני שמבטיחים זרימת עבודה.

שתי שאלות שנראות כאחת

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

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

מה באמת מספק גבול המכולה

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

libertine-container-manager list
libertine-container-manager info -i <container-id>
libertine-launch -i <container-id> bash

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

היכן חי מצב הרשת של הטלפון

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

nmcli connection show
ip route get 10.42.0.10
ip -br addr show

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

קראו זרימת עבודה אחת מתחילה עד סוף

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

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

מה לתעד כשהתשובה היא לא

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

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

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

מאמרים קשורים