טיפ: להפוך מערכת 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

גוגל נכנסת חזק לתחום הענן הציבורי

עד לאחרונה, בכל הקשור למחשוב ענן שפתוח לציבור, האפשרויות הכי ידועות היו אמזון (כמובן) ומיקרוסופט עם Azure, כאשר אמזון מובילה בביטחה בכמות המשתמשים, הפתרונות, הפלטפורמות וכמובן – ערימת השרותים שהיא מציעה הכוללת שורה ארוכה של שרותים שאף ספק מתחרה לא נותן תחת קורת גג אחת. מכיון שאמזון מציעה את כל אותם שרותים במחירים תחרותיים מאוד, הרבה מאוד סטארט-אפים וגם חברות גדולות וידועות (טוויטר?) משתמשים בתשתיות של אמזון ולאמזון יש תשתיות בשפע ופתרון כמעט לכל דבר שתרצה, החל מענייני ניתוב DNS, אם זה CDN, הרמה של כמות מכונות גדולה בזמן קצר כדי להתמודד עם עומסים, מאזן עומסים (Load Balancer), ועוד – וכל זאת במחירים נמוכים (יחסית, כמובן. אם אתה צריך רק שרת אחד שעליו אתה עושה הכל בלי שום שרותים נוספים ובלי שרידות, אמזון לא מתאימה לך).

לתחום הענן הציבורי נכנסה בשנתיים האחרונות (באיחור אופנתי, כרגיל) מיקרוסופט עם ה-Azure שלה. בהתחלה כמערכת שאתה מפתח עליה אפליקציות במגוון שפות, ולאחר מכן שרותי Azure גדלו ל-IAAS/PAAS. במיקרוסופט, שהכח העיקרי שלה מגיע מהשוק העסקי, עשו דברים קצת שונים מאמזון והחלו את המתקפה על השוק העסקי עם Office 365 כשהם משכנעים ארגונים רבים לאחסן את המייל/יומן/מסמכים בענן, ורק לאחרונה נודע כי מיקרוסופט הולכת להציע שרותים אלו גם גירסה אישית במחיר של 7$ לחודש (או 90$ לשנה) שאותה אפשר להריץ על Windows או MAC או בגרסאות הטאבלט/מובייל שמיקרוסופט הוציאה ותוציא. במקביל מיקרוסופט מנסה לדחוף בצורה אגרסיבית את שרותי ה-IAAS כתחליף לאמזון ולשם כך היא משתמשת ב"צבא" אנשי המכירות שיש להם עם דילים שונים בהתאם לגודל הארגון. עד כה המאמצים להעביר חברות מאמזון ל-Azure לא ממש מנחילים הצלחה רבה למיקרוסופט, אבל תסמכו על מיקרוסופט שיעשו הכל כדי שחברות סטארט-אפ או כל חברה שמציעה שרותי Web ישתמשו ב-Azure. מיקרוסופט אפילו נותנת תמיכה (לא מי יודע מה, למען האמת) בגרסאות לינוקס CentOS/RHEL (מנסיון אישי שלי: אם נתקלת בבאגים, תתחיל לחפש פתרונות בגוגל, התמיכה של מיקרוסופט כולל תמיכה בחו"ל פשוט לא יודעים לתמוך בלינוקס, במיוחד אם אתה מרים הגדרות רשת מורכבות.)

לשטח הזה נכנסים גוגל (ליתר דיוק נכנסו). עד כה גוגל הציעו את ה-App Engine, שרות PAAS שמאפשר לך לפתח אפליקציה שתרוץ בענן של גוגל, אולם בשנה האחרונה גוגל התחילה להציע שרותי IAAS כאשר ההצעות שהם מציעים נשמעים מעולים לאנשי לינוקס שמכירים לינוקס טוב, אבל לך תסביר את הדברים למנהל מעליך, במיוחד שכמות מערכות ההפעלה שנתמכות היתה די קטנה וממש מיועדת לגיקים (Debian 6,7, CentOS 6.2), או שתסביר לו כמה זה מעולה שאתה יכול להרים מערכות Diskless, את זה שאתה יכול להרים 1200 מערכות מאפס תוך פחות מדקה, ושלל דברים מגניבים ששוב – מדברים לגיקים שבינינו אבל קשה לשכנע את ההנהלות לקחת את ה-IAAS ולהשתמש בו כמשאב עיקרי לחברה, כך שהמצב היה שגוגל התחילה להציע דברים, אבל מבחינת שוק – לא הרבה נכנסו אליו. אבל דברים מתחילים להשתנות אצל גוגל ועכשיו הם מתחילים לצאת לאור, ועבדכם הנאמן יגלה כאן כמה דברים שאותם תשמעו רשמית עוד שבועיים: גוגל אתמול הוציאה הודעה שעשתה כאב ראש רציני למתחרים: חיתוך מחירים סופר אגרסיבי באחסון און ליין, ספציפית ב-Google Drive. מעתה, 100 ג'יגהבייט יעלו לך בחודש רק $1.99. רוצה טרהבייט של מקום? בכיף, המחיר צונח מ-50 דולר ל-$9.99 לחודש. רוצה לאחסן את כל ספריית המוסיקה/קליפים/תמונות שלך וצריך 10 טרה? זה יעלה לך $99.99 לחודש, כלומר המחיר צנח בעשרות אחוזים כלפי מטה.  זה נחמד, אבל מה עם האחסון ב-IAAS? (מה שתואם ל-S3 של אמזון) – ובכן, גם הוא בעוד שבועיים יקבל הנחתת מחיר אגרסיבית.

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

  • צריך גרסאות Windows? כן, גם בגוגל שמעו שעסקים מעוניינים ב-Windows Server והם שכרו צוותים שלמים לתמיכה והקמת מערכות כך שתוכל להקים לך Windows Server 2012 כ-VM כולל כל השרותים והתמיכה שתצטרך.
  • ה-App engine יעבור שדרוג מאסיבי ומעתה תוכל להרים עליו שרותים כמו Joomla ועוד – כך שכל מה שתצטרך זה להקים Engine, לזרוק עליו Joomla עם העיצובים והתוספים שלך. לגבי כל עניין ה-Scaling לא תצטרך לדאוג כי המערכת של גוגל תדאג לזה (אה, ולא תצטרך לשבור את הראש על ההגדרות של Web Server או MySQL וכו' – הכל יהיה יותר קל)
  • אפליקציות נוספות יתמכו ללא שינוי קוד דרך ה-App Engine
  • הרצת כל גירסת Linux וכל Kernel שתרצה. (כן, כולל תמיכה ב-SELinux וגם הפצות מבוססות Rolling Release).
  • תמיכה מלאה ב-Docker (כך שתוכל להקים כמה קונטיינרים עם מערכות לינוקס אחרות על VM יחיד)
  • הבטחה להגנה נגד DDoS
  • ואת שאר הדברים תשמעו עוד שבועיים (אני לא מעוניין למתוח את החבל יותר מדי עם גוגל..)

עכשיו, נקודה קצת ישראלית: כמו שאתם יודעים, שככל שזה מגיע לתמיכה, אתה יכול לפנות במקרה של אמזון לפורומים (או לשלם פרימיום לתמיכה) או להתרגל לתמיכה הודית (שזה תרגול מעולה איך לדפוק את הראש בקיר), אבל בגוגל החליטו לשנות דברים: הם שוכרים אנשים (חלקם עשו עליה ארצה) שנמצאים פה בישראל שיעזרו לכם גם בהמרה של האתר שלכם ותמיכה טכנית בכל ה-Cloud Platform, וגם צוות מכירות כחול לבן, כך שאם יש לך שאלות, מישהו טכני או נציג רשמי נמצא במרחק טלפון/אימייל לקביעת פגישה פרונטאלית. יותר מזה – במסגרת תוכנית ה-Starter Pack של גוגל, חברות מקבלות קרדיט כספי לשימוש ב-Cloud Platform כך שבמקום שהסטארט-אפ ישרוף את כספו על מחשוב ענן באלפי דולרים לחודש, גוגל נותנת להם קרדיט להשתמש ובכך לחסוך את הכסף שכל כך קריטי לאותם סטארט-אפים. אגב, כשזה מגיע לבחינת ביצועים, קשה להשוות בין השלושה כי חסרים פרמטרים שלא כל כך גלויים לציבור, אבל ב-infoworld החליטו לבדוק בכל זאת, והתוצאות מראות תמונה די פשוטה: אם אתה מחפש ביצועים נטו, גוגל היא הכתובת עבורך (אחרי גוגל נמצאת במקום שני אמזון ומיקרוסופט במקום שלישי), כך שלגוגל יש במה להתגאות.

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

ולבסוף: אינטגרטורים שעוברים ל-Cloud Platform של גוגל: נא לעדכן מיידית את ה-gcutil. (כן, אני חובב את הפלטפורמה של גוגל, אבל אני גם יודע לפרסם פאקים שלהם).

הטריקים של אורקל עם OVS

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

נשמע משתלם, לא? 

לא בדיוק.

הבה נציץ מאחורי הקלעים: פתרון הוירטואליזציה שאורקל נותנים עם המערכת הוא פתרון שהיה נקרא בעבר Virtual Iron שהיה מבוסס על Xen. מאז שאורקל רכשו את החברה, הפיתוח הואט כנראה וכיום הוא אפילו לא משתווה למתחרה הישיר שלו – XenServer של Citrix. מה שאורקל שינו מאז במערכת הם שינויים קטנים ועדכונים (כך לדוגמא, אם אתה חושב להצמיד כרטיס PCI למכונה וירטואלית, תתכונן לכשלון, זה פועל בקושי. חושב על פתרון כמו Shared Memory בין מערכות וירטואליות שמריצות את אותה מערכת הפעלה? יש, אבל שלא תחשוב שזה כמו ESXI) אבל הם מתנדפים בהשוואה למערכות וירטואליות כמו ESXI או אפילו Hyper-V. אם אתם לא מכירים לינוקס טוב, תתכוננו להרבה תסכול, כי זה מה שה-GUI (ה-VM Manager) נותן: תצוגה מוזרה של דברים, נעילות של מכונות אם JOB נופל (לך חפש את ה-JOB ומהיכן לשחרר נעילה), ותשכח ממצב לראות סטטוס כללי של כל המכונות הוירטואליות שלך אם הם רצים, כמה זכרון הם משתמשים וכו'. רוצים סקירה קצת יותר עמוקה על המוצר? קחו, קראו בעצמכם.

לא מדובר פה באיזו "אשמה" של המערכת הוירטואלית עצמה (XEN) כלל וכלל! אם תיקחו לדוגמא את XenServer של Citrix, יש למוצר דווקא ממשק בכלל לא רע כי ל-Citrix יש הרבה יותר נסיון עם ממשקים, Windows וכו'. גם מבחינת תמחור קשה להתחרות במוצר של Citrix. אפשר להוריד אותו בחינם (קוד פתוח) ואפשר לקבל שרותי תמיכה בתשלום שנתי של $199 פר תושבת מעבד. 

פה בישראל, הבעיה חמורה בהרבה. הבעיה עצמה מתחילה בתמיכה, והח"מ, כאחד שעבד עם התמיכה של אורקל למוצר, אני יכול לתאר את אותה תמיכה כמתחת לכל ביקורת. תומכים שלא יודעים על מה הם סחים, אינטגרטורים של אורקל עצמה שמגיעים ולא יודעים מה הם מתקינים (או שמתקינים ושוכחים להתקין קבצי RPM שונים) או שלא יודעים להתקין דברים בצורה נכונה (ראיתי אישית מקרה של'קח להם יומיים לפתור תקלה של … invalid boot signature של GRUB. הם פירמטו את המכונה הפיזית, אני לא צוחק!). בשבוע האחרון ראיתי את ה"יעילות" של אורקל. עמית פתח באורקל תקלה על אחד מהשרתים הוירטואליים (שנתמך ע"י אורקל). לכלי איסוף לוגים של אורקל לקח כמעט 3 שעות עבודה ליצור קובץ שצריך לשלוח לתמיכה (אחרת הם לא עוזרים לך בכלים), אני החלטתי מנסיוני פשוט לפתור את העניין וסיימתי את התקלה (לאחר תיקונים והתקנות של חבילות חסרות שאורקל ישראל לא התקינו) לאחר דקות ספורות. אם לא הייתי נותן שרות ללקוח, הוא היה מושבת לפחות ליום!.

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

  1. ודא כי יש לך איש לינוקס מקצועי בחברה או פרילאנסר שנותן שרותים ושהוא מקצועי, עם המערכת OVS של אורקל, אתה בהחלט תצטרך את זה.
  2. אם החלטת ללכת על פתרון XEN, כדאי שתתקין על שרת טסטים את XenServer, הוא יותר מעודכן ויותר ידידותי לחובבי GUI (אם כי גם שם תצטרך איש לינוקס לכל האוטומציה, סקריפטים וכו').
  3. אל תאמין לכל מיני חומרים שיווקיים שמראים לך כי OVS יותר טוב מ-ESXI או Hyper-V. הייתי שמח לפרסם תוצאות ביצועים, אולם הרשיון של OVS אוסר זאת. 

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

מוגש כחומר למחשבה.

הדרך ל-LAB משלי (פרק ראשון)

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

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

מה מטרות ה-LAB שלי? יש לה כמה מטרות:

  1. התנסות בגירסאות חדשות של הפצות לינוקס
  2. הפעלה ולימוד כל מיני פרוייקטים בקוד פתוח
  3. שחזור בעיות שיש ללקוחות שלי ומציאת פתרונות להן
  4. תרומה לקהילה – בניית Nightly Builds לכל מיני פרוייקטים מבוססי קוד פתוח והעלאתם לאותם אתרים בחזרה לשם הורדה ציבורית
  5. לימוד דברים חדשים בכלל

אתחיל במשהו שלא קשור ישירות למחשבים אלא לאחסונם. היו מספר אנשים שהציעו לי לפנות לאחת ממפעילי ה-Data Center ולקחת שם חצי ארון או ארון, ואז כל פעם שיש לי ציוד שאני צריך להשתמש בו, להתקין אותו שם ולפעול מרחוק. הבעיה? המחיר. חישוב סולידי שלי לכמות ה-U שאצטרך בארון מגיע בין 12U ל-16U, מה שאומר שצריך להשכיר לפחות חצי ארון. עלות השכרת חצי ארון? לא פחות מ-2500 שקל לחודש. 

לעומת זאת, אם נחשב תצרוכת חשמל של 2 שרתי Storage, עוד 4 מחשבי דסקטופ שישמשו כשרתים, מתג ואולי עוד מחשב אחד, נקבל סכום נמוך בהרבה. קילוואט שעה נמכר כיום הוא 63.76 אגורות (כולל מע"מ). נניח שאשתמש ב-3 קוט"ש (נניח פרוע מאוד, המספר שסביר שיהיה אצלי הוא בסביבות 2 גג). אז נכפיל 3 כפול 65.76, יוצא 197.28 אגורות. נכפיל את זה ב-744 (שזה 24 שעות כפול 31 ימים בחודש), ונמיר לשקלים, יוצא 1467.76 שקל. נחזור למציאות ששם אשתמש ב-2 קוט"ש לשעה גג, יוצא 978 שקל, בערך שליש מעלות השכרת ארון בחוות שרתים כלשהי. כך זה כואב פחות בכיס.

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

הבעיות של VCSA

קצת היסטוריה על VMWare ו-ESX: כש-VMWare החליטו בזמנו לצאת עם גירסת שרת מלאה (לפני כן היתה “גירסת שרת” אבל שהיתה רצה על מערכת ההפעלה שמותקנת במחשב שלך) הם יצאו עם 2 גרסאות: האחת נקראה ESX והשניה ESXi. גירסת ה-ESX נראתה כמו הפצת לינוקס (מה שגרם לרבים להתבלבל ולחשוב שמדובר בהפצת לינוקס מטעם VMWare עם קרנל לינוקס. המציאות היא שהקרנל הוא כולו של VMWare והם השתמשו בממשק תאימות בינארית ללינוקס (ABI) על מנת להריץ שרותי לינוקס שונים על ה-ESX וגם שמנהל השרת יוכל להתקין שרותים נוספים מלינוקסים אחרים על המכונה (זה היה תואם רד-האט). גירסת ESXi לעומת זאת היתה גירסה רזה שכללה רק את הקרנל + Shell מינימלי ועוד כמה כלים, רק בלי חומת אש, שרותי לינוקס וכו’.כיום יש רק גירסת ESXi.

אחד הדברים שהפתיע אנשי לינוקס רבים היה כלי הניהול של VMWare, מה שמוכר בתור ה-vCenter (לשעבר Virtual Center) שהיה כלי על טהרת ה-Windows שנכתב בדוט-נט ושגם שילב בתוכו חלקים מאינטרנט אקספלורר. VMWare גם הוציאה כלי וובי אבל שלא נתן הרבה פונקציונאליות (כלומר הוא לא יכל להחליף את ה-vCenter). מנהלי רשת רבים התלוננו מדוע אין כלי לינוקסאי כזה והתשובה של VMWare היתה שחרור של SDK וגם מכונה וירטואלית לינוקסאית קטנה שכללה סקריפטים שאפשרו לחברות שמשתמשות בלינוקס – להתממשק עם ה-vCenter.

בגירסה 5 הדברים התחילו להשנות (והשתנו יותר בגירסה 5.1) כאשר VMWare שחררו את ה-VCSA (ר”ת של VMWare vCenter Server Appliance) – זו מכונת לינוקס וירטואלית שאמורה להחליף את הגירסה החלונאית בגירסת לינוקס. היא עדיין לא כוללת את כל הפונקציונאליות של הכלי החלונאי (כך לדוגמא עדיין לא ניתן להתקין תוספים/Plugins ב-VCSA עצמו), אבל VMWare נתנה רמז עבה מאוד שזו דרכה – היא חוזרת ללינוקס ובגרסאות עתידיות היא תשקיע יותר ב-Appliance הלינוקסאי מאשר בכלי החלונאי.

עד כאן הכל טוב ויפה (במיוחד שאתה צריך פחות רשיונות ממיקרוסופט). הבעיה מתחילה ב-Appliance עצמו. VMWare שחררה אותו ככלי רשמי ויציב, אבל מי שעשה לו QA .. לא כדאי שיפגוש אותי Smile

הבעיה הראשית מתחילה בזה ש-VMWare לא שחררה אותו כקובץ ISO להתקנה שמזכירה לינוקס (כמו שהיה ב-ESX 3.X) אלא שחררה אותו כקופסא סגורה עם קבצי OVF, VMDK וכו’, ומה ששחררו קיימות בו כל מיני בעיות הקשורות לרשת שפוסט זה יתייחס אליהם.

כאן אצלי בבית ב-LAB שלי, יש לי 2 שרתי DNS (מאסטר/סלייב) וסביר להניח שאם אתה מתעסק עם VMWare בחברה, יש לכם איזה שרת DNS, בין אם זה לינוקס או (סביר להניח) הפתרון של מיקרוסופט שמשולב Active Directory. אני מניח שהכנת לך שם hostname יחודי עבור ה-VCSA עם כתובת IP יחודית משלו ושלא ממש הלכת ל-Go Daddy או ספקים אחרים כדי לרכוש לשרת תעודת SSL, וכאן מתחילה הבעיה (לא באי רכישה) – ה-VCSA מגיע עם שם מכונה localhost שזה לא בדיוק דבר שתרצה.

אתה יכול להיכנס לממשק הוובי, להגדיר כתובת IP ושם hostname, להתחבר ל-AD ואולי להשתמש ב-DB חיצוני (אורקל או DB2 של IBM, עוד לא SQL של מיקרוסופט וגם משום מה לא MySQL, קצת מפתיע ש-VMWare משתמשים ב-JAVA ב-VCSA והם משתמשים ב-JDBC ב-Tomcat אבל הם לא כוללים תמיכה ל-DB אחרים. אם אתם רוצים להוסיף תמיכה למיקרוסופט SQL נסו את הלינק הזה [אגב, הלינק כרגע מת, אבל תודות לגוגל אפשר לראות את הגירסה הטקסטואלית כאן]), אבל ברגע שתשנו כתובת IP ואת ה-hostname ושאר פרמטרים (לא לשכוח ללחוץ על Toggle certificate settings שישתנה ל-yes) – תצטרכו להפעיל את המכונה מחדש (דרך החוצץ System)

ואז המכונה תיתקע בעליה, אם תסתכלו בקונסולה, תראו שהוא נתקע בשורה שכתוב:

waiting for the embedded database to startup [ok]

מה קרה? אוה, טוב ששאלתם…

ה-VCSA הבין שצריך ליצור תעודת SSL חדשה, והוא יצר, אבל הסקריפט של ה-DB לא יודע מה לעשות הלאה, אז הוא פשוט נתקע. אם תעשו Reboot למחשב, זה לא יעזור. זה יחזור שוב. מה שצריך לעשות הוא לבטל את האופציה ליצור תעודות SSL, אבל … אין לכם גישה לא לממשק הוובי ולא ל-SSH. תצטרכו לטפל בזה כמו שמטפלים בתקלה בשרת לינוקס (לא חשבתם שתתחמקו מלינוקס, נכון?)

אז איך מטפלים? כרגיל עם VCSA, מי שבנה את ה-Appliance בנה בצורה מחורבנת לגמרי. Safe mode לא יעזור לכם, ולכן עקבו אחר ההוראות הבאות:

  1. הפעילו את השרת מחדש והיכנסו מיד ל-Console ולחצו על מקש (לדוגמא רווח) כדי לעצור את הטיימר.
  2. לחצו על מקש p ואז ה-grub יבקש סיסמא. הסיסמא היא סיסמת ה-root שלכם (אם לא שיניתם אותה עדיין, היא vmware באותיות קטנות)
  3. לאחר הקשת הסיסמא תחזרו שוב ל-GRUB. בחרו בשורה הראשונה ולחצו על מקש e
  4. כעת יופיעו לכם השורות ש-grub אמור להריץ. לחצו על החץ למטה ובחרו בשורה השניה ושוב לחצו על מקש e
  5. לכו עם החיצים עד סוף השורה והוסיפו את הטקסט הבא: init=/bin/sh ולחצו על מקש enter
  6. כעת לחצו על מקש b והלינוקס יתחיל להיטען ולאחר מספר שניות הוא יעצר עם סימן #
  7. כעת עלינו למחוק קובץ. כל עוד הקובץ קיים, המערכת תנסה ליצור תעודות חדשות והמערכת תיתקע ב-boot רגיל, לכן הכניסו את הפקודה:
    rm /etc/vmware-vpx/ssl/allow_regeneration
  8. הקישו את הפקודה reboot ולחצו enter. המערכת תיתן אולי מספר הודעות שגיאה. תתעלמו.
  9. המערכת תעלה מחדש ובהצלחה. לאחר שתקבלו את המסך הכחול (אחלה בחירת צבעים יש להם), תמתינו עוד מספר שניות (או דקות, תלוי במעבד וכמה חזקה המכונה) ואז היכנסו לממשק הוובי

ברכותיי. נגמרה הבעיה.

אני ממליץ בחום לא להשתמש ב-VCSA במערכות פרודקשן! כותב שורות אליו מצא המון סקריפטים בתוך ה-VCSA שיש להם באגים ומי שכתב אותם כנראה למד לינוקס מתוך ספר ולא מתוך התנסות מלאה (שורות של סקריפטים שחוזרות במקום להשתמש ב-while וכו’) ויש גם לא מעט שגיאות במימוש התחברות ל-NFS – עקבו אחר ההוראות כאן) ואני משער שהדברים ישתפרו בעתיד (ואולי, מי יודע, אולי הם יוסיפו איזה משהו שמראה הורדת גירסה בזמן שמשדרגים במקום מסך סטטי שאין לך אפשרות לדעת אם יורד משהו וכמה ירד!), אבל עד אז, שימו את ה-VCSA כ-VM על מכונה צדדית (אגב, בניגוד להגדרות שם, אין צורך ב-8 ג’יגה זכרון, גם 4 יספיקו בשביל הטסטים). אני גם מקווה שבעתיד הם יוציאו גירסת ISO נורמלית ואולי, רק אולי, יהיה פורום או מקום כלשהו לדווח על באגים ואולי לתת להם תיקוני סקריפטים, גם למי שאין לו מנוי בתשלום (היי, אני יכול לקוות, לא?).

כמה מילים על KVM ועל Open Stack

אנשי IT רבים, כשהם מדברים על וירטואליזציה, הם מדברים בד”כ על אחת מ-2 הפתרונות הידועים: VMware עם סל הפתרונות שלו או פתרונות מבוססי Hyper-V של מיקרוסופט. חלק קטן מהאנשים גם מכיר פתרונות מבוססי Xen כמו הפתרון של Citrix.

לאחרונה יותר ויותר אנשים שומעים על Open Stack, ואמנם רבים מתחילים להתעניין בו וחלק מהחברות גם מתחילות (בזהירות) להטמיע פתרונות שהם “Open Stack”. חברות רבות מייצרות פתרון Open Stack ובמקרים לא מעטים פתרון אחד אינו תואם לפתרון אחר, אבל לא ניכנס לזה כרגע.

חלק עיקרי מ-Open Stack הוא החלק של הוירטואליזציה, העיבוד, ה-Compute ולמרות ש-Open Stack יכול לעבוד כמעט עם כל פתרון וירטואליזציה, בברירת המחדל שלו הוא משתמש ב-KVM של רד האט.

KVM שבעבר נתפס כמשהו “נחמד” אך רבים העדיפו לא להיכנס אליו (ואם להשתמש בפתרון מבוסס קוד פתוח אז פתרון מבוסס Xen), נתפס היום ככלי וירטואליזציה רציני מאוד. חברות כמו גוגל עם ה-Compute Engine שלה משתמשת ב-KVM, חברות Hosting רבות יורדות לאט מהפתרון שיש להם ועוברות להשתמש ב-KVM, וגם חברות שמציעות שרתים וירטואליים ממש בזול (כמו Digital Ocean) נותנות את הפתרון עם KVM ולא עם פתרונות וירטואליזציה אחרים. גם חברות ענק כמו IBM שבעבר היו נותנות פתרונות מבוססי VMWare או פתרונות אחרים, נותנות כיום פתרונות עם KVM ועם תוכנות נוספות משלימות. כך לדוגמא IBM מציעה פתרונות VDI עם שילוב פתרון של VERDE כאשר הוירטואליזציה עצמה היא KVM “נטו”.

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

לכן, כשרוצים להשתמש ב-KVM, צריכים לבדוק בשלב ראשון: מה עומד לרשות אותה חברה. אם לדוגמא לאותה חברה יש מפתח או 2 בשפות כמו Perl או Python עם ידע טוב בלינוקס, העלות (למעט עלות ברזלים) תהיה קטנה משמעותית מכל פתרון קנייני אחר, ו-KVM נותן ביצועים שעומדים בשורה הראשונה בהשוואה לפתרונות של VMWare ואחרים, כך שאינך מפסיד ביצועים בגלל שאינך בוחר פתרון קנייני.

יתרון גדול נוסף הוא שגם מבחינת Middlewear אינך מוגבל. אתה משתמש ב-SAN כלשהו? כל עוד אותו SAN יודע “לדבר” בפרוטוקולים כמו iSCSI או NFS וכל פתרון לינוקס/יוניקס ידוע, הוא יוכל לעבוד עם KVM. אתה מעוניין ב-Switch וירטואלי חזק שיודע לעשות פילטרים, QoS ודברים אחרים? פתרון כמו OpenVSwitch ישמח לגשר בין המכונות הוירטואליות שלך ולתת לך את מה שאתה צריך. פתרונות מבוססי VDI ל-Windows או Linux? אם זה Windows, אז יש לך פתרון RDP כבר בתוך ה-Windows (ומעליו יש לך VLC לראות את ה-Boot אם אתה רוצה), ובלינוקס אתה יכול להשתמש בפתרונות כמו NX שיחסוך לך תעבורה וגם יתן לך איכות תצוגה מעולה.

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

  • רוצה לעבוד עם סקריפטים? (סביר להניח שהתשובה שלך תהיה “כן”): אז הפתרון הראשי שתרצה לבדוק הוא Libvirt שנותן לך תמיכה בכל שפת סקריפטים ידועה ואפילו בשפה כמו #C. עם Libvirt אתה יכול לעשות אוטומציה להכל, כיד הדמיון הטובה עליך.כלי שיכול לעזור לך הרבה בתוך Libvirt הוא virsh, שניתן להריץ אותו דרך shell ולבצע דברים. אגב, עם Libvirt ניתן גם לנהל מערכות וירטואליות מתחרות כמו vCenter או שרתי VMware בחיבור יש ל-host.
  • רוצה קצת GUI על הלינוקס שלך? (נו טוב, יש גם כאלו). לשם כך יש כלי כמו Virt-Manager. עם הכלי הזה תוכל בקלות להרים מכונות, לראות צריכת משאבים וכו’. זה ל-vCenter כמובן, אבל זה כלי בסיסי מספיק כדי להתחיל ללמוד וגם לעקוב אחרי מערכות קיימות שרצות.
  • מה עם כלי רציני שרץ דרך דפדפן? אה, טוב ששאלתם, בשביל זה יש את oVirt. זה הכלי הכי רציני שנותן לך לנהל הכל ב-KVM.

אז מה ההבדל הגדול בין KVM ל-Open Stack? אפשר להשוות את ההבדל ביניהם להבדל בין vCenter ל-vCloud Director. ה-Open Stack מתאים למצבים שיש צורך בהמון, המון מחשוב ענן של אלפי שרתים וירטואליים, פריסה על פני כמה Data Centers, צורך בשרותים דמויי AWS של אמזון (כמו S3 וכו’) ובקיצור – כשמדובר על דברים גדולים, Open Stack יכול בהחלט להיות אופציה טובה.

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

סקירה מקדימה: Google Compute Engine

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

גם גוגל נמצאת בזירה, אבל לא תשמעו על הרבה לקוחות שמשתמשים במחשוב הענן של גוגל (אלא אם מדובר ב-Google App Engine שהוא דבר שונה). הסיבה? גוגל עדיין לא מקבלת את כולם ויש צורך בתהליך בקשת אישור על מנת להצטרף. הדברים כפי שנראים כרגע ישתנו בחודשים הקרובים לאחר I/O 2013 שיערך בחודש מאי הקרוב.

לעבדכם הנאמן (שמציע, אההמ, שרותים בנושא). יצא קצת לשחק ב-Google Compute Engine (נקרא לזה פשוט GCE מעתה והלאה) ואת האמת… הופתעתי לטובה, ולא קל להפתיע אותי. כל כך הופתעתי לטובה שאני יכול להמליץ בחום, שאם מחכה לכם פרויקט הטמעה למחשוב ענן וזה יכול לחכות 3-4 חודשים, אז אני ממליץ להמתין ולהשתמש ב-GCE.

אז נתחיל מההתחלה: מה זה בעצם ה-GCE ומה הוא שונה מהמתחרים?

GCE בעקרון מאוד מזכיר מה שאמזון מוכרת כ-EC2, הווה אומר תשתית ומכונות וירטואליות שאתה מרים ומשתמש. מבחינת וירטואליזציה, לא הרבה מפורסם אך מה שכן ידוע זה שגוגל לא הלכה עם VMWare, בטח שלא עם הפתרון של מיקרוסופט ובניגוד לאמזון ואחרים – גם לא הלכה עם XEN. הם הלכו עם הפתרון האהוב עליי: KVM (כך שמי שמחפש אם KVM יכול להיות בפרודקשן למערכות קריטיות – אז כן).

מבחינת המכונות עצמם, גוגל כרגע מבדלת את עצמה משאר המתחרים מבחינת המכונות הפיזיות: כאן לא תמצאו מעבדים שאיזה ספק קנה בקילו מיצרן מעבדים שרצה להיפטר מהמלאי. כל המכונות הן Sandy Bridge (גירסת XEON) ומעלה, וכאן מגיעה נקודה חשובה שיכולה אולי לבעס חלק מהלקוחות הפוטנציאלים: גוגל משכירה מכונות גדולות. הכי קטנה מתחילה עם כמעט 4 ג'יגה זכרון ו-400 ג'יגה דיסק מקומי (יש גירסה ללא דיסק מקומי, על כך בהמשך) והמחיר מתחיל בערך ב-100 דולר לחודש, כך שמי שרוצה איזה מכונה נחמדה לארח את הבלוג שלו שנכנסים אליו 10 קוראים בשבוע, עדיף שימצא פתרון אחר. מבחינת גודל מקסימלי של מכונות, כאן תמצאו מכונות עם עד 8 ליבות ועד 52 ג'יגהבייט זכרון.

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

קצת יותר פרטים לעומק:

אחסון מידע

גוגל מאפשרת לך לאחסן את מידע בדיסק ב-3 תצורות שונות, כאשר הראשונה היא דיסק מקומי, השניה היא Persistant והשלישית היא ה-Cloud Storage:

  • דיסק מקומי: אתה יכול להקים מכונה וירטואלית על דיסק מקומי. גוגל מאפשרת זאת אבל בפירוש גוגל ממליצה להשתמש בדיסק מקומי רק לכתיבה של דברים זמניים. בנוסף, אם אתה מוחק מכונה וירטואלית, נמחק גם הדיסק. 
  • Persistant: שיטה זו יותר מוכרת למשתמשי אמזון כ-EBS. אתה מקבל אחסון שאתה עושה לו Mount במכונות שלך. לעומת אמזון, גוגל לקחה את זה צעד קדימה ואתה יכול להקים מכונה ללא דיסק (Diskless) כאשר מדובר בעצם במכונה עם דיסק קטן מאוד שעושה Boot ו-Mount לאחסון.
  • Cloud Storage: בקצרה, מי שמכיר את S3 יודע על מה מדובר. גם כאן יש לך דליים (Buckets) וכו'.

טופוגרפיה:

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

גיבויים ו-Snapshots:

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

רשתות תקשורת:

כשאתה מרים מכונות או פרויקט חדש, GCE מקים עבורך רשת ברירת מחדל עם גישה פתוחה לפורט 80 ופורט 22. אתה יכול להקים עד 4 רשתות תקשורת ולקבוע חוקים ל-Firewall מבחינת גישה של איזה מכונה תוכל לדבר עם מי ובאיזה פורט. יש לך NAT בתצורת 1:1. כמו אצל ספקים אחרים, כתובת ה-IP שאתה מקבל לגישה חיצונית היא זמנית ועליך לשייך כתובת IP לרשת שלך, אתה יכול להוסיף לך גם כתובות IP נוספות שיגשו למכונות שונות (פרוקדקשן, טסטים, סטייג' וכו'). 

אזורים:

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

רישומים:

כמנהל מערכת, סביר להניח שתרצה לדעת מי הקים ועשה מה ב-GCE שלכם, ולכן גוגל נותנת לך רישומי מערכת (Audit)

גישה וניהול:

מבחינת גישה וניהול המערכת שלך, לרשותך 3 אפשרויות:

  • גישת Web דרך הדפדפן
  • גישת CLI דרך חבילה שתתקין על מק או על לינוקס
  • דרך RESTful API, לחובבי התכנות והסקריפטים

תמחור:

בניגוד לאחרים (אהלן Azure!) טבלת המחירים של גוגל מאוד פשוטה ואינה מצריכה מחשב כיס / רואה חשבון כדי להבין אותה, ואפשר לראות אותה כאן.

לאחר שתיארתי את המערכת, נתאר גם חסרון מהותי שלה: אם מישהו משתמש ותיק באמזון וחושב לעבור ל-GCE מחר בבוקר, תהיה לו בעיה. בניגוד לאמזון, ה-GCE של גוגל עדיין צעיר ועדיין חסרים לו כל מיני חלקים. רוצים Load Balancing? תקימו פתרון כזה בעצמכם. רוצים כל מיני פתרונות הקמה אוטומטית של שרתים בעת עומס? שוב, תכתבו פתרון עם ה-API שבעת עומס יקים מכונות נוספות. רוצים DNS כמו Route 53? אין כרגע, ועוד הרבה דברים שיש באמזון, אין כרגע אצל גוגל.

אבל אחד היתרונות הגדולים של גוגל על אמזון (כרגע לפחות) זו המהירות של המכונות והרשת. הקמת מכונה? תוך 30-60 שניות היא רצה, לא צריך לחכות מספר דקות. מהירות הקריאה והדיסק עוקפים את מה שאמזון מציעה. אתם מוזמנים לעיין בגרפים ומספרים ש-GIGAOM פרסמו. המספרים בהחלט מרשימים!

לסיכום

ה-GCE של גוגל עדיין נמצא בשלבי בדיקה לקראת קבלת לקוחות בכמות מאסיבית, וכיום יש צורך בהגשת בקשה כדי להתקבל ולהשתמש בשירות, אבל מה שגוגל מציעים נראה מפתה ומבטיח הן מבחינת פתרונות והן מבחינת ביצועים. ה-GCE עדיין לא מתחרה במגוון הפתרונות שאמזון מציעים, וזה יכול להוות לחברות שמחפשות שרות מוכן (כמו Load Balacing), אך מצד שני, חברות סטארט-אפ עם אנשי Devops או Sysadmin טובים, יוכלו לקחת פתרונות קוד פתוח ולהשתמש בהם כדי לתת לעצמם פתרון כזה, כך שזה מאוד תלוי בלקוח GCE. המחירים עצמם עדיין מעט יותר גבוהים (סנט או 2) מאמזון ואני מניח שבעת הפתיחה הרשמית, תחל מלחמת מחירים רצינים בין גוגל, אמזון ומיקרוסופט. עדיין אין מכונות עם Windows אך אני מניח שזה יפתר בקרוב, ואני מאמין שלראשונה נראה קרב רציני בין 3 ענקי ספקי מחשוב ענן גדולים. אם אתם אנשי IT, צפו להתקפת אנשי מכירות עליכם השנה 🙂

הגנה פשוטה נגד Defacement – לבעלי VPS

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

טכנית במקרים כאלו אין הרבה עבודה גם אם אין לך גיבוי: אתה מרים מערכת חדשה בצד ומעתיק את קובץ ה-index.php. לעיתים תצטרך להחליף מספר קבצי index.php בתת תיקיות שונות (במיוחד בתיקיות עיצוב). כמו שציינתי, אין הרבה נזק, אבל לקוחות לא ממש לוקחים את זה בקלות, ובמקרים רבים הצעקות מתחילים, הספק שמכר את האחסון המשותף ומבקשים ממנו שיבדוק מדוע זה קרה בד"כ לא יבדוק ויטיל את האשמה על בונה האתר, ובקיצור – שמייח.

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

הטריק שאנחנו הולכים להשתמש, הוא טריק שמשנה הרשאות ברמת ה-File system אך לא ברמת ה-UNIX אלא ברמה של ה-EXT2/3/4, כלומר ברמה של הקבצים ב-Partition. שם ההרשאות הן שונות מרמת הלינוקס הרגילה שאנחנו מכירים וניתן לעשות דברים רבים עם זה. אפשר לקרוא על כך עוד כאן.

בעקרון אנו צריכים לשנות את הרשאות הכתיבה כך שלא ניתן לשנות או למחוק את הקובץ בכלל, גם משתמש root לא יוכל למחוק את הקבצים הנ"ל. אלו קבצים אנו צריכים לשנות? את קבצי ה-index.php שלא ישתנו בהמשך הדרך. בד"כ זה קובץ ה-index.php הראשי וגם קבצי index.php של תוספים.

שימו לב: שינוי כזה לא יאפשר עדכון באותה תיקיה, כך שאם הגנתם על קובץ index.php של תוסף, אותו תוסף לא יוכל להיות מעודכן, כנ"ל לגבי עיצובים ושדרוגים (אני אסביר איך להפעיל ואיך להסיר).

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

chatter +i index.php

כעת אתם יכולים לנסות לערוך את הקובץ ולשמור. המערכת פשוט תאמר לכם שלא ניתן לכתוב.

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

chatter -i index.php

עכשיו תוכלו לעדכן.

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

השיטה הזו אינה מגינה 100%. אם פורץ הצליח לקבל הרשאות root ע"י שימוש ב-exploit כלשהו, הוא יגיע לקבצים ואם הוא יודע קצת לינוקס, הוא יוכל לשנות עם פקודת chattr, אבל גם בלי זה, אם האתר שלכם נפרץ, אז יש מצב שהפורץ יעלה לשם קבצים או שישנה לכם את ה-DB, ולכן אם אכפת לכם מהאתרים, מומלץ מדי פעם להציץ ב-DB לראות שהכל תקין, שאתם יכולים להיכנס ל-wp-admin (אם זה וורדפרס) או administrator (אם זה ג'ומלה), ובדקו שאין בתיקיית האתר קבצים שלא אתם הוספתם. כבר ראיתי מקרים שמישהו הגן על האתר שלו אבל הצצה לתיקיית ה-public_html שלו הראתה ערימות של קבצי פריצה רק מחכים לשימוש.

 

טיפ ל-VMWARE ESX/I: סיסמת root

כל איש סיסטם/Devops שמשתמש ב-VMWare ESXI יודע שהחיים עם VMWare הם יחסית לא רעים. החברה מנפיקה כלים לנהל/להקים/לתחזק את המערכות הוירטאוליות וחברות צד שלישי כותבות כל מיני אפליקציות שנותנות ערך מוסף (כמו VEEAM עם הגיבויים והמיגרציה שלהם וכו’).

בעקרון כל מערכות ה-vSphere של VMWare מומלץ שיעבדו מול Storage שעליו יאוחסנו ושם בעצם ימצאו הדיסקים הקשיחים הוירטואליים. אם אין לך Storage, בגירסה 5 הוסיפו VMWare תכונות להקים Storage קטן ופשוט (יחסית). זה לא מה שיחליף פתרונות של EMC או NETAPP במקרים מסויימים, אבל זה יכול לשמש כפתרון לא רע בשלב התחלתי.

אחת הסיטואציות שקורות גם עם VMWare אבל גם עם כל מערכת הפעלה רגילה אחרת, זה ששוכחים את סיסמת מנהל השרת (ה-root או ה-Administrator) לשרת מסוים. ב-Windows אם אתה משתמש ב-Active Directory והשרת משוייך ל-AD, אתה יכול להתחמק מכך בכך שתבחר את ה-AD, תכניס שם משתמש וסיסמא של בעל הרשאות אדמיניסטרציה ותגמור עם זה. בלינוקס אתה יכול פשוט לעשות boot במצב Single mode (במערכות אובונטו או דביאן תצטרך לבצע שינוי זמני ב-GRUB בזמן שאתה מפעיל את השרת), ולאחר שנכנסת למצב המינימלי תוכל להריץ פקודת passwd לשנות סיסמא, ולהפעיל את השרת מחדש (reboot) או לעבור ל-mode אחר (telinit 2 דביאן, telinit 3 ב-CentOS לדוגמא).

ב-VMWare אין לך אף לוקסוס כזה. שכחת את סיסמת ה-root, אין אפשרות לבצע rescue boot ולשכתב סיסמא מחדש. הפתרון הרשמי של VMWare זה שתעשה vmotion לכל המכונות שלך לשרתים פיזיים אחרים, תפרמט ותתקין את ה-ISO מחדש. לאחר ההתקנה תבצע שוב vmotion מהשרתים האחרים לשרת שהתקנת הרגע ונגמרה הבעיה.

הכל טוב ויפה, אבל מה אם אין לך Storage? מה אם שכרת שרת או 2 בחוות שרתים וזה מה שיש לך? אתה יכול לשכור עוד שרתים פיזיים ולהעביר אליהם את המכונות הוירטואליות, אבל אז ה-Migration הוא מה שנקרא Cold, כלומר העברת המכונה תהיה בתהליך של יצירת snapshot, העברת כל ה-VMDK ושאר קבצים, עוד snapshot, העברת ה-Delta, והפעלה מחדש (אם כמובן כל ההגדרות רשת תואמות וכו’, אחרת תצטרך לשנות ידנית כל מכונה). כל התהליך הזה כרוך ב-Down time, אבל הוא כרוך בהמון עבודה, תלוי כמה מכונות יש לך על כל שרת – אתה יכול לצפות לעבודה של לפחות כמה שעות טובות או לפחות יום (שוב, תלוי בכמות שרתים, תעבורת תקשורת וכו’).

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

להלן הצעדים לביצוע התהליך (הכל דרך vcenter).

  • ודא כי המכונה הנ”ל מחוברת ל-vcenter שלך, בלעדי זה אי אפשר לבצע את התהליך כי אין לך כניסה ב-SSH למכונה (אין לך סיסמת root זוכר?).
  • כבה את כל המכונות הוירטואליות
  • בחר לעבור למצב Maintenance mode (לחיצה ימנית על השרת, ובחירת האופציה הנ”ל)
  • בתפריט ה-Host profile (שמופיע עם לחיצה ימנית על השרת הפיזי) בחר Create Profile from host – תן לזה שם שתכיר שזו המכונה הנ”ל ועדיף שתכתוב קצת תיאור ב-Description, אם תצטרך זאת יום אחד.
  • לאחר שיצרנו פרופיל – נערוך אותו: לחץ על ה-Home משמאל למעלה, ובחר Host Profiles (בד”כ מופיע בשורה שלישית)
  • מצד שמאל יופיעו לנו הפרופילים. בחר את הפרופיל שיצרת, לחץ כפתור ימני עליו ובחר Edit profile
  • יופיע חלון חדש עם “עץ”, בתוך ה”עץ” בחר את Security configuration ובתוכו את Administrator Password
  • לאחר שלחץ על Administrator Password מצד ימין, החלק הימני של החלון יעודכן, בחר מתוך ה-Drop Down את האפשרות Configure a fixed administrator password, כך אנחנו בעצם נקבע סיסמא חדשה
  • כעת החלק החשוב: הקש סיסמא מורכבת, הווה אומר לפחות 8 סימנים המורכבים מאותיות ומספרים (אפשר גם סימנים אחרים). סיסמאות של 6 אותיות או 6 מספרים יכשילו את התהליך. כתוב שוב את הסיסמא בקוביית ה-confirm.
  • לחץ על OK
  • כעת חזור אל העמוד עם פירוט השרתים (לחץ על Home למעלה משמאל ועל Host & Clusters)
  • בחר את השרת הפיזי, לחץ על כפתור ימני, ובחר Manage Profile. אם תקבל אזהרה על כך שכבר מוצמד פרופיל למכונה, לחץ על Cancel. אם תקבל חלון עם רשימת הפרופילים, בחר את הפרופיל שיצרת
  • אם השרת הפיזי אינו נבחר כרגע בחלון ה-vcenter, בחר אותו ותסתכל על חוצץ ה-Summary. כמעט בסוף המלבן השמאלי מופיע Profile Compliance – ואם הכל תקין, אמור להופיע עיגול ירוק עם סימון V. אם לא, משהו בהגדרות פרופיל שלך אינו נכון, חזור אחורה וערוך את הפרופיל עם סיסמא מורכבת.
  • לחץ כפתור ימני על השרת הפיזי, ובחר ב-Host profile את Apply Profile. התהליך יקח כמה שניות ותוכל לעקוב אחריו בחלונית ה-Tasks. אם הכל תקין, אתה תראה ב-Tasks הודעת Completed. אם לא, תקבל שגיאה, סביר להניח שקשורה לסיסמא. סיסמא מורכבת, כבר אמרתי?
  • הפעל את שרות SSH (בחירה מתוך חוצץ Configuration, בחר Security Profile, לחץ על Propteries למעלה מימין, בחר את SSH, לחץ על Options ולחץ על Start ואחר כך כפתור OK. אתה תראה את SSH כ-running.
  • פתח תוכנת טרמינל כמו Putty (או terminal במק או לינוקס), הכנס את כתובת ה-IP של השרת, פורט 22 (על מק או לינוקס יש לכתוב ssh root@ip-address כאשר ה-ip-address זו כתובת ה-IP של השרת הפיזי). אם תתבקש להכניס שם משתמש, הוא כמובן root והסיסמא היא אותה סיסמא שבחרת מקודם. הקש אותה ואם קיבלת את סימן ה-# אז אתה יכול לנשום לרווחה, הכל תקין.
  • חזור ל-vCenter, לחץ על כפתור ימני על השרת הפיזי, ובחר Exit Maintenance mode ולאחר מכן הפעל את המכונות הוירטואליות.
  • ברכותיי, לא צריך לפרמט את השרת. אל תשכח לחזור ל-Security Profile ולבטל את שרות ה-SSH (כמו שהפעלת רק שהפעם בחר Stop).

זהו, אפשר להמשיך לעבוד עם המכונה, רק שהפעם מומלץ לרשום את סיסמת ה-root היכן שהוא  Smile

מחשוב ענן: תכין מסמך טיעונים

כל אינטגרטור, איש Devops, איש סיסטם ואחרים שמעודכנים בתחומי Cloud computing מודע בוודאי לכך שחוץ מאמזון שמציעה שרותי ענן רציניים, יש מתחרים לא פחות רציניים כמו מיקרוסופט, גוגל, Rack space ועוד פה ושם כמה ספקים קטנים (יחסית, יחסית).

מבחינת השרותים השונים, אפשר לנהל דיונים וויכוחים מקצועיים מכאן ועד להודעה חדשה אלו שרותים מתאימים מבחינת ספקים שונים. סתם דוגמא: האם שרותי ה-Cloud Front יותר טובים ממה שספקים אחרים כמו Akamai מציעים? התשובה היא כמובן “תלוי” – ל-Akamai יש רשת ענקית של שרתים בכל נקודה בעולם (רק בארץ יש להם 3 נקודות!), אבל מצד שני, המחיר ש-Akamai מבקש יכול להבהיל כל לקוח קטן עד בינוני.

אז אפשר לנהל דיונים וויכוחים מקצועיים מי יותר טוב ולמה שרות X של ספק Y יכול להתאים ללקוח כזה ולא לאחר, אבל לפעמים יש דברים שהם לא מקצועיים (נקרא להם “פוליטיים”) שיכולים לחרפן אנשי מקצוע אבל לא תהיה להם ברירה אלא לציית..

תרשו לי להסביר, ואתייחס לנקודה הישראלית (אם כי כמובן זה יכול לקרות בכל מקום בעולם): בארץ, ה-Gold Standard בכל הקשור למחשוב ענן כשהלקוחות שלך מגיעים מכל העולם זה כמובן אמזון. סטארט-אפ שרוצה להציע שרותים והיזם הוא זה מי שמקים את התשתית, סביר להניח שזה מה שיבחר. הסיבות לכך פשוטות: רוב “החבר’ה” כבר שם, יש שפע של מידע איך לעשות מה מו מי, ויש לאמזון שם של חברה יציבה (יחסית כמובן).

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

מיקרוסופט בד”כ משתמשת בטריק ידוע: פינוק. לקוחות מוזמנים לכנסים עם ארוחות, סופי שבוע בבתי מלון ושאר פינוקים אחרים כדי “לרכוש את ליבם” של מנהלי ה-IT, ה-CTO ולפעמים ה-CEO של חברות שונות, באמצעות מצגות שונות שמראים כמה המוצרים של מיקרוסופט זולים יותר ונותנים ביצועים יותר גבוהים. רובנו, האנשים המקצועיים, יכולים די מהר לחלוק על המצגות האלו בכל מיני נקודות ולהראות שמיקרוסופט מציגה תמונה מעוותת בקשר ליכולות XYZ בהשוואה ל-ABC שהמתחרה מציע.

וכאן מגיע החלק של ה”הנחתה” (והוא קיים במיוחד בחברות) – נציגי מכירות של מיקרוסופט פונים בהתחלה לאנשי ה-IT ואם הם לא מצליחים לעשות מכירה, הם פונים לסמנכ”לים או למנכ”לים כדי למכור להם את המוצרים, ואם הלקוח מבחינת מיקרוסופט הוא חשוב – מיקרוסופט מוכנה “להוריד את המכנס” (סליחה על הביטוי) מבחינת מחירים והבטחות, וכך המפתחים או אנשי ה-IT יכולים לקבל יום אחד הוראה: אנחנו עוברים ל-Azure. כל איש Devops, אינטגרטור ואיש סיסטם רציני יכול להבין מיד את המשמעות: שכתוב ערימות סקריפטים מחדש וכאב ראש ענק ומי שהכי גרוע – העבודה הארוכה והסיזיפית אחר כך, לוודא שהביצועים הם אותו דבר כמו שיש לך כיום. בכל זאת, הוירטואליזציה שמיקרוסופט מציעה לא ממש מרשימה מבחינת Performance (תסתכלו באתר spec וחפשו פתרונות של מיקרוסופט).

אז איך אפשר להימנע ממכה כזו? בכך שאתה מכין מראש מסמך טיעונים שכולל:

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

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

המלצה שלי: תכינו מסמך כזה.