איך מתקינים Virtual Machine

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

כתבתי על זה בעבר אבל הגיע הזמן לחזור על זה. אחד מכלי הפיתוח החשובים ביותר לדעתי הוא מכונה וירטואלית. מכונה וירטואלית היא בעצם מחשב בתוך מחשב שמאפשר לי להתקין מחשבים ושרתים עם מגוון של מערכות הפעלה שונות בהתאם לצרכים. במקום להשתמש ב-WAMP מציק או ב-XAMPP – שמדמים שרת על החלונות, עם מכונה וירטואלית אני יכול בעצם להרים לינוקס טבעי לכל דבר על המחשב שלי. על הלינוקס הזה אני יכול להתקין כל מה שבא לי – שרת Apache או nginX. להתקין Node בקלות וכל דבר. הרסתי? החרבתי? לא קרה דבר – אני מרסט את המכונה ויכול להחזיר אותה בקלות למצב הראשוני. אני יכול להתקין את ה-IDE שלי על המכונה או להתחבר מרחוק אל המכונה הוירטואלית כאילו מדובר בשרת רגיל. כך למשל אני יכול להתקין Samba Server ולקשר בין מכונת החלונות לשרת עצמו.
הבן שלי מציק לי שאתן לו אפשרות להתקין שרת של MineCraft על המחשב. במקום להתקין על המחשב שלו לינוקס או לקחת מחשב ולשים עליו לינוקס, אני אתקין על המחשב שלו מכונת לינוקס כמכונה וירטואלית. למכונה הזו יש IP בתוך הרשת ממש כמו כל מחשב אחר ואפשר להתחבר אליה כמו כל מחשב אחר. הדרדק יכול להתקין שם מה שבא לו כולל השטות של מיינקרפט.

אז איך עושים את זה? יש כמה פתרונות להתקנה של מכונה וירטואלית. זה שאני מעדיף להשתמש בו נקרא Oracle VM Virtual Machine. הוא זמין למגוון פלטפורמות. מן הסתם תבחרו בפלטפורמת חלונות כי זו מערכת ההפעלה שנמצאת אצל 99 אחוז מהמשתמשים.

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

התקנת מכונה וירטואלית - מסך ראשי
מסך שבו יש את רשימת כל המכונות. בתחילה הוא יהיה נקי

יקפוץ לנו חלון שבו נצטרך לכתוב את שם המכונה. השם נתון לבחירתנו, כיוון שיכולות להיות לנו לא מעט מכונות, נצטרך לבחור שם משמעותי – למשל Ran LAMP Machine או DEV MEAN Machine. אנו גם בוחרים את מערכת ההפעלה הרלוונטית. אפשר להתקין מערכת וירטואלית של חלונות, לינוקס, אפל ובעצם כמעט הכל.

בחירת שם המכונה והסוג שלה
בחירת שם המכונה והסוג שלה

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

התקנת מכונה וירטואלית - התקנת מכונה - הקצאת RAM
כאן בוחרים כמה זכרון מקצים למכונה הוירטואלית מהמכונה המארחת.

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

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

עכשיו יש לנו מכונה וירטואלית. לחיצה כפולה עליה תקפיץ לנו את החלון הבא. אנחנו יכולים לבחור CD ROM אם יש לנו או ללחוץ על החץ הקטן ולבחור את ה-iso של מערכת ההפעלה שהכנתם מבעוד מועד.

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

מאיפה משיגים את ה-iso? אם מדובר בלינוקס, ממש אין בעיה. באתר של אובונטו למשל, אפשר להוריד את ההפצה של אובונטו בקלות. אם אנו רוצים מכונת LAMP או MEAN, בדרך כלל גרסת אובונטו מספיק טובה. אני מוריד את גרסת הדסקטופ כי אני אוהב גם GUI, אבל כל אחד והכיף שלו. מפה בעצם נכנסים להליך התקנה רגיל ויש לנו בתוך המחשב מכונה משלנו שיש לה IP ואפשר לעשות איתה הכל.

בחירת התקנים שיעבדו עם המכונה

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

הגדרות של מכונה וירטואלית
בחירה בהגדרות של מכונה וירטואלית

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

הגדרות רשת של מכונה וירטואלית
הקצאת התקני רשת למכונה וירטואלית

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

Snapshots

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

סיכום

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

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

המנעו מהעלאת source control לשרת פומבי

לא תאמינו כמה אתרים מעלים את ה-source control שלהם לשרת. ככה תמצאו אותם וגם הסבר למה זה רעיון רע.

צילום מסך של סוואגר
יסודות בתכנות

openAPI

שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API

גלילה לראש העמוד