על CBL-Mariner וכאלה
לאחרונה, ובאופן שקט יחסי העלתה Microsoft לאוויר הפצה נוספת לעולם – CBL Mariner.
CBL-Mariner היא הפצת לינוקס פנימית בתשתית הענן של Microsoft שנמצאת בשימוש של מערכות שונות, בעיקר תשתית ענן וכן מערכות Edge. הקבוצה שאחראית על פיתוח CBL-Mariner היא קבוצת Linux System Group שבין היתר אחראית על עוד הצלחות רבות של חיבור לינוקס לעולם של Microsoft.
הפצת CBL-Mariner נועדה לספק פלטפורמה על מנת להגביר את יכולתה של Microsoft להישאר מעודכנת בלינוקס ולתת מענה לתרחישים שונים. היוזמה הזאת היא רק חלק מההשקעה הגוברת של Microsoft במגוון רחב של טכנולוגיות לינוקס השונות, בין היתר, SONiC, התשתית של Azure Sphere וכמובן WSL.
CBL-Mariner תוכננה מתוך תפיסה של סט חבילות ליבה קטנות שיכולות לתת מענה לצרכים רוחבים של שירותי ענן וכן ציודי קצה, תוך מתן אפשרות לשלב חבילות נוספות על גבי הליבה המשותפת וזאת בכדי לייצר אימייגים לטובת תרחישים. הדבר מתאפשר על ידי מערכת בנייה פשוטה המאפשרת:
יצירת Package – פעולה זו מייצרת חבילות נדרשות מתוך קובצי SPEC וקובצי מקור.
יצירת Images – פעולה זו מייצרת אימייגים נדרשים כמו ISO או VHD ממערך נתון של קוד.
בין אם CBL-Mariner נפרס כקונטיינר או כמערכת המארחת קוטיינרים , CBL-Mariner צורכת משאבי דיסק וזיכרון מוגבלים, וזאת בכלל המאפיינים הפשוטים של CBL-Mariner אשר מספקים גם זמני אתחול מהירים יותר וגם בצד האבטחה משטח תקיפה מינימלי. על ידי מיקוד התכונות והרכיבים באימייג ליבה לטובת דרישות נקודתיות, למשל, דרישות נקודתיות לצורכי הענן, ומכאן המשמעות היא מערכות מהירות, בטוחות יותר וקלות לתפעול.
כאשר מתעוררות פגיעות אבטחה, CBL-Mariner תומך הן במודל עדכון מבוסס חבילה והן במודל עדכון מבוסס אימייג. CBL-Mariner עושה שימוש במערכת ניהול חבילות RPM המשותפת, ומציעה את תיקוני האבטחה והתיקונים האחרונים הזמינים להורדה במטרה לזמן עדכונים מהירים.
כאמור, CBL-Mariner היא מערכת קוד פתוח אשר זמינה בחשבון Microsoft בגיטהאב microsoft / CBL-Mariner והמאגר ניתן לשכפול וכמובן שמאפשר לשים הערות במאגר לטובת שיפור הקוד. כמו כן, CBL-Mariner בנויה על ההפצה של Ubuntu 18.04 (לפחות לפי ההוראות הגדרה והתקנה).
איך CBL-Mariner בנוי? ההפצה של CBL-Mariner מצריכה את Ubuntu למחולקת לשולשה שלביי בנייה של: כלים, אריזה והפצת האימייג. במסמכים של CBL-Mariner ישנם הוראות להגדרת חבילות מקוסטמות לפי שפות שונות, מימוש Docker ועוד.
איך מקנפגים CBL
ישנם דרכים שונות להגדיר CBL-Mariner החל מבניית הכלים, דרך קיפוג האריזה של החבילה ועד סגירת האימייג ופרסום למערכות וציודי קצה. במאמר הנוכחי ישנם הנחיות והתקנה באופן השפוט יחסי, שלוקח את ההפצה של CBL-Mariner איך שהיא ומכין אותה לאימייג בסיסי בלבד.
חשוב להדגיש כי המאגר של CBL-Mariner אינו מכיל קובץ ISO להורדה או כל משהו אחר בסגנון.
בניית האימייג
תחילה, נצטרך לבצע הגדרות ספציפיות טרם מקמפלים את האימייג ועם סט של פקודות להתקנה – שלב הכלים – Tooling.
טיפ: ניתן להריץ את ההכנות ובניית האימייג מתוך WSL 2 בקלות רבה ומשם להוציא קובץ ISO.
בפקודה הבאה נוסיף repository של Go באמצעות longsleep/golang-backports בכדי לקבל את הגרסה האחרונה. הפקודה שצריך להריץ היא
sudo add-apt-repository ppa:longsleep/golang-backports
לאחר מכן נתקין את הכלים הבאים בכדי שיהיו חלק מתהליך קיפול האימייג, ונריץ את הפקודה הבאה:
sudo apt install make tar wget curl rpm qemu-utils golang-go genisoimage python2-minimal bison gawk
לאחר מכן, נמשיך אל השלב הבא של הכנת האימייג ונשכפל את המאגר באמצעות הפקודה הבאה:
git clone https://github.com/microsoft/CBL-Mariner.git
שלב השכפול לוקח דקות בודדות ובסיומו נוכל לגשת לתיקיות השונות ולתיקייה שאנו צריכים להריץ את השלב הבא: CBL-mariner/toolkit
מכאן, נמשיך את הכנת האימייג וביצוע פעולות אסמבל, קימפול ויכין קובץ ISO לטובת התקנת CBL-Mariner באמצעות הפקודה הבאה:
sudo make iso REBUILD_TOOLS=y REBUILD_PACKAGES=n CONFIG_FILE=./imageconfigs/full.json
כאן הסתיים החלק הראשון וקוץ ISO מוכן להתקנה יהיה זמין בתיקייה Out/Image.
טיפ: למי שמכין את ההפצה מתוך WSL אפשר להעתיק את הקובץ ישירות מתוך File Explorer.
התקנת CBL-Mariner
לאחר סיום הכנת הכלים והאימייג אנו יכולים לפרוס ולהתקין את האימייג של CBL-Mariner על ציודי קצה או כמו בדוגמה שלנו על Hyper-V. שלבי ההתקנה מכילים ממשק גרפי אך לאחר מכן ניהול והגדרות נוספות של CBL-Mariner נעשה רק מתוך CLI.
במידה קובץ הגדרות מכיל יותר מאימייג אחד ניתן לבחור מתוך תפריט התקנה
התקנה של CBL-Mariner היא התקנה מאוד קצרה גם אם נעמיס אותה בכלים, חבילות נוספות והגדרות. במקרה שלנו בצורה הכי בסיסית, התקנה ארכה שניות בודדות.
מכאן אפשר להתחיל לעבוד עם CBL-Mariner.
לסיכום, Microsoft ממשיכה לחבר ולהתבסס על עוד מערכות לינוקס בענן או עם ציודי קצה, בין אם מדובר על מערכות Azure Sphere או WSL ומערכות נוספות שיגיעו אלינו בקרוב.
מאמרים נוספים בנושא Microsoft Linux ומאמרים נוספים על CBL-Mariner בקישור הבא Linux Archives – אלי שלמה