תפעול מכונות וירטואליות באמצעות PowerShell
אחרי שבפוסט הקודם התקנו את ה-Module של Hyper-V, אנחנו יכולים להתחיל לשחק במכונות הוירטואליות שלנו.
כמו בכל פוסט – אל תנסו את זה בProduction!!! המטרה שלי היא להביא אתכם למיומנות מסוימת לפני שמתחילים להריץ דברים על מערכות קיימות.
נניח שיש לי מכונה וירטואלית בשם VM01, עליה אבצע את כלל הפעולות.
את כלל הפקודות יש להריץ מהשרת Hyper-V Host, יהיו מקרים שארחיב כיצד להריץ את הפקודות מרחוק.
פקודות בסיסיות:
הפעלת מכונה וירטואלית:
Start-vm VM01
שם המכונה נשלח כפרמטר לפקודה.
ניתן לשלוח פרמטרים נוספים, לדוגמא:
שם שרת – אם אנחנו מעוניינים לשלוח את הפקודה על שרת Hyper-V Host (נניח שיש לנו חוות שרתים ולא מעוניינים לגשת ידנית לכל שרת).
הפקודה תראה כך:
תניחו ששם השרת Hyper-V Host הינו : SRV2008R2
Start-vm VM01 SRV2008R2
הפקודה הזו תפעיל את המכונה הוירטואלית VM01 שנמצאת על השרת SRV2008R2.
כיבוי מכונה וירטואלית: (כיבוי לא מסודר, בדומה להפסקת חשמל בשרתים פיזיים)
חשוב מאוד: הפקודה איננה שומרת את הState של המכונה הוירטואלית.
Stop-vm VM01
בדומה לפקודה Start-vm, גם אותה ניתן להריץ באותה צורה על שרת Hyper-V Host מרחוק.
כיבוי כלל המכונות הוירטואליות שרצות כרגע:
Get-VM –running | Stop-VM
בשורת הפקודה הזו, עשיתי שימוש בשתי פקודות ביחד ע"י הפרדת הפקודות בעזרת הסימן | שנקרא גם Pipeline ובעצם הוא אומר שהפקודה השנייה תופעל על הנתונים שיוחזרו מהתוצאה של הפקודה הראשונה.
כלומר:
ביקשתי לקבל את כלל המכונות שהם בState של running, את הנתון הזה אני "מוסרת" לפקודה הבאה באמצעות pipeline ואז מבצעת את הפקודה לכיבוי המכונות הוירטואליות.
בצורה הזו ניתן לשלב המון פקודות.
כיבוי מסודר:
Invoke-VMShutdown VM01
הפקודה מנחה את מערכת ההפעלה של המכונה הוירטואלית לבצע כיבוי מסודר.
מידע על מכונה וירטואלית:
Get-VMSummary VM01
הפקודה תיתן לנו מידע על המכונה הוירטואלית, כגון: שם תצוגה, GUID, זמן יצירה, הState הנוכחי, כמות CPU, זיכרון ועוד ועוד.
מתאים מאוד למקרים שבהם תרצו להכין תיעוד על המערכת שהקמתם וכך תקבלו את כלל הנתונים רשומים בצורה מאורגנת.
כמובן שניתן להוציא את הפלט לקובץ טקסט בקלות.
פקודות מתקדמות:
נניח שאנחנו יצרנו מכונה וירטואלית, ואנחנו רוצים ליצור את אותה מכונה וירטואלית על עוד 100 שרתים , האם נעשה את העבודה ידנית? ממש לא!
כדי להכין לעצמנו סקריפט ליצירת מכונה וירטואלית, כל מה שעלינו לעשות זה ליצור פעם אחת בצורה יסודית את המכונה הוירטואלית אותה אנחנו רוצים לשכפל (שוב… נניח ומדובר בVM01) אז אנחנו נריץ פקודה שתתן לנו כפלט את הסקריפט שיוצר את המכונה הוירטואלית הזו.
הפקודה שצריכה להיות החברה הכי טובה שלכם:
Get-VMBuildScript VM01
סקריפטים של PowerShell הם עם סיומת ps1. ובהמשך אני ארחיב בנושא יצירת סקריפטים, פקודות ואפילו מודולים משלכם על מנת שאנחנו כאנשי IT לא נצטרך לעבוד קשה בכל מה שקשור לניהול חווה המבוססת על הוירטואליזציה של מייקרוסופט.
מחיקת מכונה וירטואלית:
הפקודה הזו לא ממש מתקדמת, אבל היא בהחלט קצת מסוכנת, כי היא יכולה למחוק לכם את המכונה הוירטואלית, אז אחרי שהרגשתם קצת איך זה להפעיל פקודות PowerShell על Hyper-V אני מרגישה יותר בטוחה להסביר לכם על הפקודה הזו:
Remove-Vm VM01
הפקודה תמחוק את המכונה הוירטואלית VM01.
אם שמרתי את הסקריפט שהכנתי לפני שניה, אז ב"קליק" אפשר להחזיר את המכונה הוירטואלית שהרגע מחקנו.
פתיחת חלון Remote על המכונה הוירטואלית:
New-VMConnectSession -VM VM01 –server SRV2008R2
תקבלו חלון תצוגה של מכונה וירטואלית VM01 על השרת SRV2008R2
מכאן… הדרך לאוטומציה של תהליכים היא כבר קצרה… 