כתבתי על זה בעבר אבל הגיע הזמן לחזור על זה. אחד מכלי הפיתוח החשובים ביותר לדעתי הוא מכונה וירטואלית. מכונה וירטואלית היא בעצם מחשב בתוך מחשב שמאפשר לי להתקין מחשבים ושרתים עם מגוון של מערכות הפעלה שונות בהתאם לצרכים. במקום להשתמש ב-WAMP מציק או ב-XAMPP – שמדמים שרת על החלונות, עם מכונה וירטואלית אני יכול בעצם להרים לינוקס טבעי לכל דבר על המחשב שלי. על הלינוקס הזה אני יכול להתקין כל מה שבא לי – שרת Apache או nginX. להתקין Node בקלות וכל דבר. הרסתי? החרבתי? לא קרה דבר – אני מרסט את המכונה ויכול להחזיר אותה בקלות למצב הראשוני. אני יכול להתקין את ה-IDE שלי על המכונה או להתחבר מרחוק אל המכונה הוירטואלית כאילו מדובר בשרת רגיל. כך למשל אני יכול להתקין Samba Server ולקשר בין מכונת החלונות לשרת עצמו.
הבן שלי מציק לי שאתן לו אפשרות להתקין שרת של MineCraft על המחשב. במקום להתקין על המחשב שלו לינוקס או לקחת מחשב ולשים עליו לינוקס, אני אתקין על המחשב שלו מכונת לינוקס כמכונה וירטואלית. למכונה הזו יש IP בתוך הרשת ממש כמו כל מחשב אחר ואפשר להתחבר אליה כמו כל מחשב אחר. הדרדק יכול להתקין שם מה שבא לו כולל השטות של מיינקרפט.
אז איך עושים את זה? יש כמה פתרונות להתקנה של מכונה וירטואלית. זה שאני מעדיף להשתמש בו נקרא Oracle VM Virtual Machine. הוא זמין למגוון פלטפורמות. מן הסתם תבחרו בפלטפורמת חלונות כי זו מערכת ההפעלה שנמצאת אצל 99 אחוז מהמשתמשים.
אחרי ההתקנה הקצרה, אנו נגיע אל התפריט המרכזי. אצלכם הוא יהיה ריק, אין שום מכונה מותקנת. על מנת להתקין מכונה אנו נלחץ על הכפתור הכחול שכתוב עליו New:
יקפוץ לנו חלון שבו נצטרך לכתוב את שם המכונה. השם נתון לבחירתנו, כיוון שיכולות להיות לנו לא מעט מכונות, נצטרך לבחור שם משמעותי – למשל Ran LAMP Machine או DEV MEAN Machine. אנו גם בוחרים את מערכת ההפעלה הרלוונטית. אפשר להתקין מערכת וירטואלית של חלונות, לינוקס, אפל ובעצם כמעט הכל.
עכשיו עלי לבחור את כמות הזכרון שאני מקצה למערכת. כל זכרון שאקצה ייגרע מהמחשב המארח, אז צריך להזהר כאן. אם אהיה קמצן מדי כלפי המחשב הוירטואלי, הוא יהיה איטי ומבאס. אם אהיה נדיב מדי, אז המארח יהיה איטי ומבאס. אם יש לי כמות זכרון רבה, אז לא אכפת לי. בזמן כתיבת שורות אלו, 16 ג'יגה זה מספיק להכל.
השלב הבא הוא הקצאת ההארדיסק. אפשר ליצור מכונה בלי דיסק קשיח, אני אוהב ליצור אחד מההתחלה ולעשות אותו בגודל קבוע. אם יש לכם SSD בגודל מספק, כדאי להקצות אותו שם.
עכשיו יש לנו מכונה וירטואלית. לחיצה כפולה עליה תקפיץ לנו את החלון הבא. אנחנו יכולים לבחור CD ROM אם יש לנו או ללחוץ על החץ הקטן ולבחור את ה-iso של מערכת ההפעלה שהכנתם מבעוד מועד.
מאיפה משיגים את ה-iso? אם מדובר בלינוקס, ממש אין בעיה. באתר של אובונטו למשל, אפשר להוריד את ההפצה של אובונטו בקלות. אם אנו רוצים מכונת LAMP או MEAN, בדרך כלל גרסת אובונטו מספיק טובה. אני מוריד את גרסת הדסקטופ כי אני אוהב גם GUI, אבל כל אחד והכיף שלו. מפה בעצם נכנסים להליך התקנה רגיל ויש לנו בתוך המחשב מכונה משלנו שיש לה IP ואפשר לעשות איתה הכל.
בחירת התקנים שיעבדו עם המכונה
כאשר המכונה כבויה, אפשר ללחוץ על Settings ולהקצות התקנים שונים שיעבדו עם המכונה – כמו למשל מסכים, או הוספת הארדיסק, או זכרון של כרטיס וידאו וכו'.
מה שיותר מעניין וחשוב הוא בחירת כרטיס הרשת שיעבוד עם המכונה והתצורה של כרטיס הרשת. רוב הבעיות של המכונות הוירטואליות הן בתקשורת. הרבה פעמים למכונה אין גישה לאינטרנט, או שיש לה גישה החוצה אבל לשאר המחשבים ברשת אין גישה אליה (דבר שמהווה בעיה אם אני רוצה לדמות שרת ורוצה לגשת אליו מהדפדפם של המכונה המארחת למשל). אם אתם נתקלים בבעיות כאלו – תשעים ותשע אחוז שזה מגיע משם. על מנת לפתור את הבעיות האלו, אנו נגיע ל-Settings ואז ל-Network. שם אנו בעצם בוחרים באיזה כרטיסי רשת המכונה הוירטואלית תשתמש. כך למשל, אם המחשב המארח שלכם משתמש בכרטיס רשת אלחוטי וכרטיס הרשת המוקצה למכונה הוא כרטיס הרשת הרגיל, אין מצב ביקום שהמכונה שלכם תוכל לגשת לאינטרנט.
גם הדרך שבה אנו מגדירים למכונה הוירטואלית להשתמש בכרטיס הרשת רלוונטית. האם אנו משתמשים ב-Bridge? כלומר המכונה משתמשת ישירות בכרטיס הרשת מול הרשת של המארח? או ב-NAT, שבו יש רשת וירטואלית פרטית בין המארח למכונה הוירטואלית? בגדול אני משתמש ב-Bridge. אם יש לכם בעיות בחיבור של פנימה או החוצה, זה הדבר הראשון שחייבים לבדוק.
Snapshots
בכל רגע נתון אפשר לקחת snapshot מהמכונה – כלומר את המצב הנתון שלה. מומלץ בכל מצב לעשות snapshot. למשל לי יש בסיס של snapshot שמוכן להורדה של מכונות במגוון מצבים ובמגוון הגדרות. למשל מכונה של MEAN עם Yeoman מותקן להתחלת פרויקט. בכל פעם שיש לי פרויקט – אני לוקח גרסה חדשה של המכונה. אפשר כך גם לגבות מכונות בקלות. הרסתי? החרבתי? אני חוזר ל-snapshot. על מנת לקחת snapshot, כל מה שצריך זה ללחוץ על האייקון של snapshot ומשם נכנסים לתפריט שבו אפשר 'לצלם' את המצב הנוכחי או לפתוח מחדש כל מצב. בצוות שלנו יש מכונה וירטואלית אחידה שבה כולם משתמשים וזה חוסך המון זמן על התקנות וקינפוגים.
סיכום
אם רציתם לעזוב את עולם ה-WAMP המאוס ולפתח על לינוקס כמו בן אדם, אבל מצד שני לא רציתם להתחיל לשבור את הראש על מחשב חדש – מכונה וירטואלית היא פתרון מצוין. במיוחד אם יש לכם מחשב חזק. לא מעט מפתחים משתמשים בזה. שווה מאוד להתנסות ולהכיר. עם שרתים וירטואלים אפשר לדמות אחד לאחד סביבה של לקוח ולעלות על תקלות בקלות. אפשר להשתמש בכלים מתקדמים שלא תמיד זמינים על חלונות ולעבוד כמו שצריך.
3 תגובות
הווינדוס שלי הוא 64 ביט
שאני מתקין את התוכנה הוא נותן לי אפשרות לעלות מערכות הפעלה רק של 32 ביט
זו בעיה מאוד ידועה. זה יכול לנבוע מכמה וכמה סיבות וזה קורה להמון אנשים. המאמר הבא יכול לפתור לך את הבעיה: http://www.fixedbyvonnie.com/2014/11/virtualbox-showing-32-bit-guest-versions-64-bit-host-os/ אבל בגדול:
1. לבדוק את ה-bios באפשרויות של Intel (R) VT-d Feature ו/או Intel (R) Virtualization Technology.
2. לבדוק שה-Hyper V מופעל ב turn windows features on or off (ממש לחפש את זה בחיפוש).
אפשר להמשיך ולחפש פתרונות נוספים בגוגל תחת המחרוזת של virtualbox not allowing 64 bit.
האם ניתן להגדיר את ה-vm על dok ? ולנייד אותו בין מחשבים בעת הצורך?