להתראות CentOS – התגובות והתשובות

אתמול פרסמתי את המאמר הזה לגבי ההחלטה של רד-האט להפסיק עם CentOS 8 ובמקומו לקדם את CentOS Stream. באתר CentOS יש FAQ של שאלות ותשובות בנושא, ואני ממליץ לקרוא אותו.

בחור בשם תומר בריסקר, עובד של רד-האט, פרסם פוסט בקבוצת ה-Linux IL בפייסבוק. אני בהחלט ממליץ לקרוא את הפוסט של תומר (הוא פתוח לציבור) ואני מודה לתומר שהסביר את הדברים. הוא גם הוסיף פרטים שלא פרסמתי בפוסט הקודם שלי. בקיצור – קפצו לקרוא.

העניין הוא שתומר מתייחס לנקודות מסויימות ועבדכם הנאמן מתייחס למשהו שונה לחלוטין. אין לי ספק ש-CentOS Stream במהלך הזמן ישתפר (בפעם האחרונה שניסיתי אותו לפני מספר חודשים, ה-Installer שלו (Anaconda) קרס לי לגמרי עוד לפני התחלת ההתקנה, ולא חשוב כמה ניסיתי לעקוף את התקלה) ואף יהיה תואם ל-CentOS 8/RHEL 8 ופידבקים של קהילת משתמשי CentOS Stream ילקחו בחשבון ע"י רד האט להכנסה לגירסת ה-RHEL.

אבל זה לא העניין שבגינו אנשים רבים מאוד עצבניים על רד-האט.

כל משתמש לינוקס, בין אם מישהו שהתחיל להכיר לינוקס רק לאחרונה או מכיר ומשתמש בלינוקס כבר יותר מ-20 שנה מכיר את הדבר הבא: בניגוד למערכות יוניקס, ישנן מאות הפצות לינוקס שמציעות דברים שונים ויש כמובן את ההפצות הפופולריות שרובם משתמשים בהן. כשרוצים לבחור הפצת לינוקס, צריך לבחור הפצה, וההפצות השונות מתחלקות בין הפצות יציבות אך ללא "המילה האחרונה" מבחינת אפליקציות ופלטפורמות (לדוגמא: CentOS, Debian Stable, RHEL, SLE, Ubuntu LTS), לבין הפצות שאינן כל כך יציבות – אך כוללות כמעט כל גירסה חדשה של אפליקציות ופלטפורמות פופולריות (Fedora, Ubuntu, Debian Testing, Open SuSE).

חברות רבות הטמיעו בתשתיות שלהן שאינן פרודקשן – הפצות CentOS בגלל היציבות שההפצה "יורשת" מ-RHEL. אין ב-CentOS את הקרנל האחרון הציבורי, אין את ה-KDE או ה-GNOME האחרון, והפלטפורמות הזמינות הן גרסאות יציבות, אך לא האחרונות, ולמשתמשי CentOS אין בעיה עם זה כי הם רוצים יציבות בכל מצב.

הפצה כמו CentOS Stream אינה הפצה יציבה כי ההפצה הולכת לנסות כל מיני דברים בתוך ההפצה. לא לשבור תאימות בינארית, אבל לנסות כל מיני דברים "קטנים" בתוך החבילות. נשברה החבילה? אופסי, חכה איזה יום יומיים עד שבונה החבילה יזכר לתקן אותה. זה לא יציבות, זו בקשה מהמשתמשים להיות Beta testers של רד-האט. מי בדיוק מוכן להתקין דבר כזה בשרתים שלו? אני בספק אם יש מישהו רציני שרוצה לעשות זאת. אגב, אם מישהו ינסה לשכנע אתכם ש-CentOS Stream הולך להיות התחליף ל-CentOS 8, הנה מה שכריס רייט, ה-CTO של רד-האט מציין:

"CentOS Stream isn’t a replacement for CentOS Linux; rather, it’s a natural, inevitable next step intended to fulfill the project’s goal of furthering enterprise Linux innovation. Stream shortens the feedback loop between developers on all sides of the RHEL landscape, making it easier for all voices, be they large partners or individual contributors, to be heard as we craft future versions of RHEL."

אין לי בעיה עם CentOS Stream, ואני מקווה שבעתיד הרחוק זה יהיה פרויקט מוצלח, אבל אם יש משהו שאני מתעב – זה שמנסים "למרוח" אותי (לא, לא תומר, אלא חברת רד-האט העולמית). עזבו אותי מ-CentOS Stream, אני רוצה לדעת מ-רד-האט עצמה מדוע הם הורגים את CentOS 8. אין תקציב? זה פוגע בהכנסות החברה? חלק מה-SIG פוטר? זכותה המלאה של רד-האט "להרוג" את CentOS 8, אבל מגיע לקהילת המשתמשים לדעת מדוע התקבלה החלטה זו. אחרי הכל, הובטח שיהיו עדכונים ל-CentOS 8 עד 2029. על שום מה הקיצוץ ל-2021?

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

אגב, הפצה מתחרה ל-CentOS בקוד פתוח תקום כבר בזמן הקרוב ויש לה כבר שם: Rocky Linux.

להתראות CentOS??

בימים האחרונים יצאה הודעה כי CentOS 8 תעבור שינויים משמעותיים ובכללם – ההפצה תחדל מלקבל עדכונים בסוף שנת 2021, ולא תהיה הפצת CentOS המקבילה ל-RHEL מבחינת גירסא וקוד. הדבר היחיד שישאר הוא CentOS Stream שזו גירסת CentOS טיפה יותר "מתקדמת" מ-RHEL (אבל מבחינת עדכוני אבטחה – ה-Stream יקבל את העדכונים רק לאחר ש-RHEL יקבל).

אין ספק שמי שנמצא בעולם הלינוקס וקרא את ההודעות, די הופתע מכך (שלא לדבר על חטיפת עצבים מטורפים). רוב חברי קבוצת CentOS SIG הם עובדי רד-האט ו-ראד האט עצמה משתמשת ברוב המערכות שלהם פנימית ב-CentOS וגם עובדים אלו לא ממש אהבו את ההחלטה הזו. גירסת ה-CentOS נתנה לרבים את התחושה של "להיות בלי, להרגיש עם" – לקבל הפצת לינוקס חינמית שהיא תואמת 100% הפצת RHEL אך מבלי לשלם (ומבלי לקבל תמיכה רשמית) וכולם הסתדרו לא רע עם הסידור הזה, כאשר חברות וארגונים רכשו RHEL לשרתי הפרודקשן והשאר – CentOS או הפצות לינוקס אחרות.

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

ראשית, אני יכול להבטיח שאין ל-IBM יד ורגל בנושא ובהחלטה. רד-האט היא עדיין חברה עצמאית שמחליטה לעצמה החלטות, כולל את ההחלטה הזו.

שנית – אני משער שאחת הסיבות העיקריות להחלטה הזו קשורה לכך שרד-האט מעוניינת בכמה שיותר פידבק מצד משתמשים ומפתחים לגבי עדכונים ותיקונים שהיא משחררת ל-RHEL, ומשתמשי CentOS בגירסה הרגילה לא יכולים לסייע הרבה אם הם מקבלים את התיקונים והעדכונים רק לאחר שהם מוזרמים ל-RHEL, ולכן אלו שיעבדו עם CentOS Stream יוכלו לתת פידבק על התיקונים שישוחררו לפני שהם נכנסים ל-RHEL (אך כפי שהזכרתי לעיל: זה לא יהיה רלוונטי לגבי תיקוני אבטחה עקב עניינים כמו אמברגו של תאריכי שחרור עדכונים וכו').

שלישית – ולעניין זה לא תקבלו שום אישור מגורם רשמי: התקדמות טכנולוגית שגורמת להפסד פיננסי לרד-האט. בעבר, אם הייתי צריך להרים תשתית לינוקס גדולה לפיתוח, פרודקשן, עם backend ועוד דברים רבים – הייתי צריך בארגון גדול, לרכוש מספר לא קטן של רשיונות RHEL לכל שרת פרודקשן, בין מדובר בשרת פיזי או וירטואלי. כיום, לעומת זאת, המעבר לקונטיינרים חוסך לי בצורה משמעותית את כמות רשיונות ה-RHEL שאני צריך לרכוש לפרודקשן. אם פעם, לשם הדוגמא, הייתי צריך לרכוש 20 רשיונות, היום 4 רשיונות ל-Worker Nodes יספיקו, ופה מדובר רק בדוגמא אחת. רבים כיום יעדיפו הפצת לינוקס חינמית ברוב המקומות למעט היכן שחייבים בגלל ההנהלה להשתמש בהפצות RHEL מסחריות.

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

כל איש לינוקס ותיק ירגיש בוודאי תחושת דה-ז'ה וו בנושא. כבר היינו בעבר בסרט הזה. כשחברת רד-האט החליטה להוציא רק גרסאות לינוקס מסחריות בתשלום (מה שהיה RHEL, RHES), נוצרו מספר פרויקטים שלקחו את קוד המקור של RHEL וביצעו Fork לגירסה עם שם אחר אך עם תאימות מלאה (בעקרון, לא מדובר בתהליך של קימפול הכל מחדש באופן אוטומטי. יש לא מעט כלים לפתח, יש לא מעט סקריפטים לכתוב, להסיר קבצי לוגו וסימנים מסחריים של רד-האט וכו') כשה"זוכים" בפופולריות בסופו של דבר היו CentOS, Scientific Linux וכמובן Oracle שהחליטה פשוט לבנות את הכל בעצמה ולגנוב לקוחות מ-רד-האט.

אני מאמין שמה שיהיה הפעם – יהיה בדיוק כמו התהליך שהיה. דווקא כיום, יהיו יותר ויותר חברות שישמחו להשקיע בהשכרת מספר מהנדסים כדי לבנות גירסת RHEL חופשיה עם אופציה ללקוחות המעוניינים לרכוש תמיכה מסחרית, SLA וכו'. אחרי הכל, מדובר פה בשוק פוטנציאלי לא קטן של חברות וארגונים שיתחילו לחפש פתרונות חלופיים ל-CentOS 8 וגרסאות עתידיות. יהיו כמובן נסיונות של הפצות אחרות למשוך לקוחות פוטנציאליים (קנוניקל, סוזה וכו') אבל אני בספק אם זה יצליח.

לפיכך, להלן המלצותיי (לפי התיעוד הרשמי):

  • אם אתם משתמשים בגירסה כלשהי של CentOS 6 – שדרגו בדחיפות. ה-EOL שלה חל בחודש שעבר.
  • אם אתם משתמשים בגירסה כלשהי של CentOS 7 – אתם בטוחים, ואתם תמשיכו לקבל עדכונים לגירסה עד תאריך 30/6/2024. אם אינכם חייבים לעבור לגירסה 8, פשוט אל תעברו, במיוחד אם המכונות הן וירטואליות.
  • אם אתם משתמשים בגירסה כלשהיא של CentOS 8 – אתם תקבלו עדכונים עד סוף שנה הבאה (31/12/2021)
  • עכשיו, כל מה שנותר לעשות, זה להמתין ולראות מי "יקפוץ". האם רד-האט תחזור בה? (קהילות הלינוקס הן לא קהילות מנומסות, בלשון המעטה!) ואם לא, מי החברות שיכריזו על Fork ל-RHEL? (אמזון? מיקרוסופט? גוגל?) במשך השנה הקרובה אנחנו נראה את ההתפתחויות ואני מאמין שכבר בחודשים הקרובים נראה חדשות בנושא עם מפות דרכים והמלצות לאן להגר.

ולבינתיים, אני ממליץ לא לקחת המלצות פזיזות, אם אפשר.

טיפ: להפוך מערכת CentOS ל-RHEL

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

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

לשם ההפיכה, נצטרך קודם כל את ה-ISO פרוס לקבצים בתיקיה כלשהי (אפשר כמובן על NFS, רק כדאי שתבצעו קודם כל mount במכונה שאנחנו הולכים לשנות). לאחר שביצענו mount נעבור למצב root (זה המצב שבו נישאר כרגע) עם sudo או – su.

עתה יש להריץ את הפקודה הבאה:

rpm -e --nodeps centos-release

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

עתה, נרים לנו REPO משלנו עם הנקודה שאליה ביצענו mount. כנסו לתיקיית etc/yum.repos.d/ ושם ניצור קובץ dvd.repo – הנה דוגמא משלי:

[DVD]
name=DVD REPO
baseurl=///mnt/Server/
enabled=1
gpgcheck=0

במקרה הנ"ל, ה-mount שביצעתי היה לתוך תיקיית mnt/ כמו כן יש לשים לב שכמות הקו נטוי (/) היא בתוספת / כך שאם מדובר במערכת קבצים מקומית (ולא http) יש צורך שיהיו 3 קווים נטויים.

כעת יש להעיף את קבצי ה-repo האחרים של CentOS (הם מתחילים במילה CentOS)

עכשיו ננסה להשתמש ב-repo החדש שהוספנו. הריצו את הפקודה הבאה:

yum install redhat-release

סביר להניח שההתקנה תבקש לעדכן את initscripts. אשרו את ההתקנה.

כעת יש צורך להריץ yum update על מנת לעדכן חבילות שונות. הכל יבוצע אוטומטית.

אם אתם מעוניינים לרשום את המכונה בשרתים של רד-האט, יש להריץ את הפקודה הבאה:

yum install rhnlib rhnsd rhn-client-tools rhn-check yum-rhn-plugin rhn-setup

שימו לב לא להכניס מספרי גרסאות, המערכת תתקין את הגרסאות האחרונות מהיכן שהיא מוצאת ב-REPO.

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

זהו, כעת כל מה שנותר לבצע הוא reboot וכעת יש לכם שרת RHEL כאילו התקנתם אותו מאפס מה-ISO. תוכלו לבדוק זאת ע"י הקשת פקודת: lsb_release -d