יש לא מעט ארגונים שעובדים או עבדו עם PXE. השיטה הזו טובה להתקנת מערכת מאפס בלי להיסחב עם דיסק און קי, קבצי ISO או העתקי מחיצות (Partitions) שהיצרן החליט לשים העתק של מערכת ההפעלה שם (כדי שתתקין יחד עם מערכת ההפעלה את ערימת הזבל שהוא מכניס).
מבחינה טכנית – PXE הוא די פשוט: יש שרת TFTP שמגיש קבצים ב-UDP דרך פורט 69. אתה מקים שרת כזה, מוודא שיש שרת DHCP שיתן כתובות IP זמניות (או קבועות אם אתה נותן כתובות לפי MAC) למכונה שעושה BOOT PXE וכל מה שנשאר לך זה לוודא שתוכנת ה-PXE Client (יש כל מיני ללינוקס ו-Windows) יודע איך להעלות את המערכת שאתה רוצה להעלות.
הפתרון הזה הוא פתרון נחמד למעבדת מחשבים או למקום שצריך PXE פה ושם. אחרי הכל – תן לשרת TFTP להגיש קבצים ל-100 מכונות בו זמנית ותראה את השרות זוחל.
אני רוצה להכיר לכם את IPXE.
אם אנחנו מסתכלים היום על Data Center – בין אם ה-DC מורכב מחצי ארון עם 3 שרתים ועד לאולם שלם שמפוצץ שרתים – הדברים השתנו לחלוטין בעשור האחרון. שיטת העברת הקבצים הכי פופולרית היום היא HTTP, אנחנו יותר משתמשים ב-iSCSI וב-NFS, בחלק מהמקומות יש Infiniband, ועוד ועוד טכנולוגיות מודרניות, ובכלל – כיום כל VM יושב על iSCSI או על NFS והתקנה אוטומטית דרך פרוטוקולים אלו יכולה לסייע מאוד.
היחוד של IPXE הוא בכך שהוא לוקח את PXE המוכר ומקדם אותו לעידן של היום תוך מתן תמיכה טבעית ל-NFS ו-iSCSI והעברת קבצים עצמה יכולה להתבצע דרך HTTP (ולכולם יש כיום מערכות לנטר ולכוון תעבורת HTTP). מה עם שרת ה-TFTP? אותו עדיין נצטרך אך ורק להעביר קובץ יחיד (UNDIONLY.KPXE) ואולי עוד קובץ למערכות UEFI. את השאר אפשר להעביר בפרוטוקולים אחרים.
IPXE נותן לנו במכונה שעושה BOOT PXE גם אפשרויות של סקריפטים בשפה די פשוטה שיקח לכם זמן מאוד קצר ללמוד אותה. אפשר להכניס תנאים, לשרשר קבצי IPXE, וכמובן – יש תמיכה ל-NFS, iSCSI, Infiniband ופרוטוקולים אחרים. כך לדוגמא אם מרימים מערכת ESXi או לינוקס, אפשר להכניס פרמטרים להטענת kickstart להתקנה אוטומטית, להשתמש ב-WIM של Windows ועוד. צריכים מכונות דסקטופ ל-Windows? אתם יכולים לעקוב אחר ההוראות כאן לגבי פתרון שיכול להתאים לכם.
הנה לדוגמא מערכת שאני מקים אצלי ב-LAB בבית (מאז הוספתי עוד כמה שורות). לא משהו מורכב, אבל עם הסקריפט הסופר-פשוט שכתבתי – אני יכול להתקין מגוון מערכות הפעלה לכל VM חדש שאני יוצר מבלי לחפש כל פעם היכן ה-ISO. כל קבצי ההתקנה וסקריפט ה-IPXE יושבים אצלי על שרת NGINX (שרת Web) וסקריפט ה-IPXE פשוט מוריד את כל מה שהוא צריך בהתאם למערכת שבחרתי ולבסוף מריץ פקודת boot. משהו לא עבד? לחיצה על CTRL-B תתן לי "shell" נחמד שאיתו אני יכול לנסות את הפקודות ידנית או לראות את השגיאות לפרק זמן ארוך כדי לתקן אותם ולהפעיל את המערכת מחדש.
מערכת נוספת שהכנסתי לתפריט היום (לא מופיע בתמונה) היא מערכת GParted שהיא מערכת לניהול Partitions. נניח שאני צריך לגבות Partitions מסויימים לפני שינוי והשרת עצמו הוא פיזי (ב-VM יש snapshots, במכונות פיזיות – זה קצת יותר מסובך). אני יכול להתקין תוכנת גיבוי ולעשות זאת ולקוות שהגיבוי הצליח, או שאני פשוט יכול למפות iSCSI Volume זמני דרך ה-iPXE, להפעיל את IPXE, לבחור את GParted ולגבות את ה-Partitions. אותו דבר אני יכול לעשות עם NFS ושאר טריקים לאחסון – כל זה מבלי להתקין שום תוכנה נוספת, לרכוש רשיונות וכו'.
הפתרון של IPXE הוא פתרון שמנצל את הכלים שלנו לשימוש מודרני ב-DC, הפתרונות שיש כיום להפצת קבצים יכולים יפה מאוד לעמוד בעומס של עשרות או מאות מכונות שרוצות PXE ועכשיו. בהמשך הדרך, כש-VDI יכנס יותר ויותר לתמונה, ה-Thin Client יוכל לקבל את המערכת שצריכה לרוץ עליו דרך PXE במקום לעדכן קושחות, לבצע טסטים על כל שינוי קטן וכו'.
לסיכום: גם אם יש לכם פתרון PXE, מומלץ להכיר יותר את IPXE. ה-IPXE נותן לנו פתרון שמשתמש בטכנולוגיות של היום ובדרך גם חוסך בכל מה שקשור לתחזוקה והתקנות של מחשבי דסקטופ, שרתים, מכונות VM ואחרים. לא חייבים לשנות כל 3 דקות את הגדרות ה-DHCP (יש ProxyDHCP ותמיכה לזה ל-IPXE) ובטווח הארוך זה חוסך הרבה עבודה. מנסיון.
אחלה כתבה.. ניסיתי כמה פעמים לעבוד עם pxe ואכן האיטיות הייתה מורגשת. הפסקתי להשתמש מאחר והייתי צריך פתרון הפצה קצת אחר – אני רוצה להפיץ מספר partitions עם מספר מערכות הפעלה . (הבוט נעשה בuefi, תחת refind) האם זה אפשרי? או שאני מחוייב לקובץ wim? בדרך המסורתית עם patition יחיד..