PowerCLI על ידי VMWare מתהווה לממשק הנפוץ למנהלי וירטואליזציה של היפרווייזור תומך בארכיטקטורת החומרה של ESXi. ללמוד איך לנהל את VMware באמצעות PowerShell ו-PowerCLI הוא הוספה חזקה לכלי העבודה שלך. במדריך הזה של PowerCLI, אתה הולך ללמוד בדיוק כיצד לעשות זאת.
במדריך הזה, אתה תלמד:
- היסודות של התחברות לתשתיות VMware עם PowerCLI
- התמכרות עם cmdlets לעבודה עם אובייקטים של VMware
- להעצים את עצמך עם הידע לחקור
- ניהול של VMware בצורה נוספת דרך PowerCLI
בוא נתחיל!
מה שאתה צריך להכין ולדעת
לפני שתתקדם מדי במדריך הזה של PowerCLI, תמיד חשוב לוודא שגם אתה וגם אני נמצאים באותה עמוד. למאמר זה, אני אניח ש:
- יש לך ניסיון בסיסי ב-PowerShell. אין צורך להיות מומחה ב-PowerShell, אך כל הידע שיש לך בנוגע ל-PowerShell ישרת אותך היטב.
- יש לך מארח VMware ESXi או יישות vCenter להתחברות ולבדיקות.
- אתה עובד על תחנת עבודה במערכת Windows (או Mac / Linux)
- יש לך PowerCLI מותקן ומחובר כבר. אם לא, ראה מאמר זה על התקנת PowerCLI.
I’ll be using PowerCLI v 11.4.0. I will be working from a Windows 10 workstation with Windows PowerShell 5.1, but you’re welcome to use PowerShell 6 instead as there’s feature parity for this tutorial.
איסוף מידע על מארחי ESXi באמצעות PowerCLI
לפני שתתפלא בשכבת הווירטואל של הסביבה שלנו ב-vSphere, כדאי לעבור על שכבת החומרה הפיזית. VMware PowerCLI מספקת פקודה ישירה למטרה זו, לאיסוף מידע מפורט בשם Get-VMHost
.
בעודך מחובר לשרת vCenter או למארח ESXi שלך, הרץ את הפקודה הבאה.

בשל כך שאני מחובר ל- vCenter Server Appliance שמנהלת שני מארחים נפרדים של ESXi, אני מקבל מידע בסיסי על המארחים שנמצאים בניהול. הפקודה Get-VMHost
מאפשרת לך לעיין ביכולות החומרה של מארחי הווירטואליזציה שלך. אך כברירת מחדל, Get-VMHost
אינה מחזירה את כל המידע שזמין לה.
אם תשתמש בפקודה Get-VMHost
יחד עם Format-List
, תקבל פלט בקונסולה לכל המידע על המארחים הנתונים.

Get-VMHost | Format-List
בנוסף, אפשר גם להיות בחורף ולבחור רק מאפיינים מסוימים באובייקט VMHost שאיתו אתה עובד כמו:
באמצעות הפלט המפורט הזה יתן תמונה עוד טובה יותר של החומרה התחתונה שמפעילה את העומס הווירטואלי שלך. חלק מהמידע, בפרט, יהיה:
- מידע על אימות הרישיון
- סך הכלי של המעבד והזיכרון
- יצרן ודגם של החומרה
- שם המארח של DNS
לאחר הסקירה, ניתן לקמפל את זה לקובץ CSV, אולי בעזרת הפקודה Export-CSV
.
בדיקת מכונות וירטואליות בעזרת PowerCLI
נכנסים כעת לנושא נוסף במדריך הזה של PowerCLI ובוחן את המארחים הווירטואליים על ידי בדיקת המכונות הווירטואליות שנמצאות כרגע על מארח ESXi נתון.
הפקודה Get-VM
היא פקודה שימושית שאפשר להשתמש בה כדי לראות מידע על מכונות הווירטואליות.
פלט של פקודה זו ייראה משהו כמו שמוצג למטה:

הפלט מספק רשימת סטטוס מלאה של מכונות הווירטואליות הפעילות כרגע על מארח נתון. אם תבחר לא לציין מארח יחיד, כמו שעשיתי למעלה, תקבל טבלה של מידע עבור כל מארח לקראת המכונות הווירטואליות בכל אחד.
אם אתה נתקל בבעיה כלשהי ואתה צריך לדעת את מספר מכונות הווירטואליות במארח נתון או יש לך צורך להשתמש ב-VMware PowerCLI כדי לאסוף מידע על מארח ESXi, תוכל להשתמש בפקודות אלו בעתיד. היכולות של דיווח שיש לך זמינות כעת מתרחיבות!
בדיקת מתגי ווירטואליים עם PowerCLI
עבור אלה מאיתנו שמוטרדים בתצורה או ניהול של רשתות הווירטואליות של אשכול vCenter, ישנה סדרה מלאה של פקודות רשת עבור כל מקרה שימוש. אם ברצונך לראות את המתגים הווירטואליים שמוגדרים בסביבת vSphere שלך, יש לך להשתמש בפקודות הבאות:
לפי המספר של רשתות ומתגים ווירטואליים שיש לך, רשימת התוצאות שלך עשויה להיות די גדולה. במקרה שלי, כפי שאתה רואה למטה, יש לי DSwitch יחיד המהווה Distributed Virtual Switch.
ביישום Enterprise vSphere בו ישנם רבים מתקןי ESXi באשכול, DSwitches פשוטים את ההטמעה של מתגים וקבוצות פורט באופן ישיר על רבים מתקני המארחים עם אותו הגדרה. זה חוסך על העמלה הידנית של יצירת הגדרות רשת זהות בכל מארח באופן ידני, וזו דרך נהדרת להרסיס את האשכול שלך!

מציאת מכונות וירטואליות מחוברות לרשת וירטואלית באמצעות PowerCLI
בעת ניסיון להגביר את התיק והתרחק ממנו, ייתכן שתתעסק בשאלה אילו מכונות וירטואליות מחוברות לרשתות אילו. כדי לגלות זאת, ניתן להשתמש בפקודת Get-VirtualPortGroup
. בואו נלמד על פקודה זו במדריך הזה של PowerCLI.
A port group is essentially a virtual network. To display all port groups, run Get-VirtualPortGroup
without any parameters. You should then see a listing of all virtual port groups present in your vSphere environment.

כדי למצוא את כל המכונות הווירטואליות בתוך קבוצת הפורט (DPortGroup במקרה שלי), ניתן להפעיל את התסריט למטה. יש לוודא להחליף את הערך DPortGroup בשם הקבוצה הווירטואלית שלך.
בתוך שורה אחת זו, אנו מקבלים רשימה של כל המכונות הווירטואליות שקיימות במכשיר ה- vCenter הזה, ואז מסננים עם פקודת Where-Object
כדי לקבל רק את המכונות הווירטואליות שיש להן שם רשת התואם לקבוצת הפורט שלנו.

עם הפלט הזה, תוכל להגדיר אילו מכונות מחוברות ומוגדרות לכל רשת.
כאשר נדרש לאתר ולנתח אילו מכונות וירטואליות מחוברות לרשת מסוימת ב-VMware, כעת תוכל לספק פתרון לדיווח PowerCLI לשאלה זו.
קבלת מידע על גרסת המערכת הפעילה ב-VM שלך באמצעות PowerCLI
רוב העבודה המנהלית בתוך VMware נעשית ברמת מכונה וירטואלית. תכניות בלתי נגמרות עשויות להתקבל עבור משימות כמו שליפת רשימת גדלי דיסקים עבור מכונות וירטואליות או קבלת גרסת מערכת ההפעלה האורחת עבור כל השרתים שלך ועוד.
משימות אלה הן מסורבלות בקנה מידה. PowerCLI מסוגל לפשט אותן בעזרת מספר פקודות חשובות להוסיף לארסנל שלך, אז נכסה אותן במדריך הזה של PowerCLI.
יתכן ששאלת במקום מסוים: "כמה שרתי Ubuntu יש לנו באשף ה-VMware שלנו?". ייתכן ובשלב מסוים נצרכת לך זמן רב מידי כדי לחפש את התשובה באמצעות הקלקות ב-vCenter. PowerCLI מסוגל לפשט את התהליך הזה על ידי הסתכלות על אובייקטים של מכונה וירטואלית ב-vCenter והחלת קסם של PowerShell על הפלט.
צפה בקוד הבא שמציג מידע על מכונות וירטואליות. קטע הקוד הזה משתמש בפקודת Get-View
שנדבך בהקדם אבל לעכשיו עליך לדעת שזו שיטה מתקדמת לשליפת מאפייני אובייקטי VMware. במקרה זה, אנחנו מצביעים על מאפיינים מקוננים שהם הכי נגישים לשליפה באמצעות שיטה זו.
קוד המעלה מחזיר רשימת מכונות וירטואליות באמצעות פקודת ה-PowerCLI Get-VM
, ממיין את הרשימה בעזרת פקודת ה-PowerShell Sort-Object
, ואז משלב את חלק ממאפייני האובייקט באמצעות פקודת ה-PowerCLI Get-View
.
הרצת הקוד בסביבתי מחזירה את התוצאה הבאה. אתה יכול לראות את שם המכונה הווירטואלית ב-vCenter, את המערכת המוגדרת
שהיא האופן שבו חומרת הווירטואלית של VMware מוגדרת לפרש את מערכת ההפעלה האורחת, ואת המערכת הפועלת
המייצגת את מערכת ההפעלה האכן.

עם ה-VMs הרפליקנט ו-Scriptrunner מכובים בקבוצה, לא תוכל לראות את ערך ה-Running OS
עבורם. המערכת הפועלת נאספת על ידי שירות VMware Tools. אם המידע אינו זמין, PowerCLI לא יכול לאחזר את מידע מערכת ההפעלה.
יצירת דוחות CSV עם PowerCLI
כלי VMware Tools הוא שירות באורח מיוחד ל-MVMs של Windows ו-Linux המספק מידע נוסף למנהל הסביבה ויכולות ניהוליות. ברוב המקרים הוא יספק סגירה נקיה, מידע על מערכת ההפעלה ותצוגת קונסול עם רזולוציה גבוהה יותר של ה-VMs.
A convenient way to report on and provide this information would be to pipe the above script into the Export-CSV
cmdlet. Export-Csv
will create a CSV file with the same information you see in the console.
לאחר הרצת הקוד לעיל, עליך להפתח את קובץ ה-CSV עם Excel כדי לסקור את הדוח.

בדיקת דיסקים קשיחים וירטואליים עם PowerCLI
הפקודה Get-Harddisk היא עוד פקודה שימושית לדעת. פקודת Get-HardDisk מאפשרת לך לבדוק מידע אודות דיסקים קשיחים וירטואליים שמחוברים ל-VMs.
לדוגמה, כדי לשאול מידע אודות הדיסק הקשיח הוירטואלי שמחובר ל-VMs exchange1, ניתן להריץ את הפקודה הבאה:

חלק מהמידע הזה עשוי להיות רדונדנטי, כגון הקיבולת ב-KB לעומת GB. אך ישנה ערך בידע על ה-StorageFormat
(סוגי הצמדה דקה/עבה). וידע על שם קובץ ה-VMDK.
לדוגמה, אם אתה רואה בעיה נפוצה וכל דיסקי ה-VM ממוקמים על אותו נפח אחסון, הידע הזה עשוי להאיץ את תהליך התיקון.
בדיקת מתאמי רשת וירטואליים עם PowerCLI
בנוסף לבדיקת מידע של דיסקים קשיחים של המכונות הווירטואליות שלך, ייתכן כי תרצה גם לבדוק את מתאמי הרשת הווירטואליים. כדי לבדוק את התכונות הללו עבור מכונה וירטואלית יחידה, ניתן להשתמש ב־Get-NetworkAdpter
cmdlet.
בעוד שבעבר חיפשת ביציאה זו עבור כל המכונות הווירטואליות הנמצאות באותו הרשת, הפעם אתה רוצה רק לראות את המתאמים המחוברים למכונה וירטואלית מסוימת.

זה שימושי כאשר מתבצעת איתור תקלות במכונות וירטואליות שיש להן מספר מתאמי רשת מחוברים. תוכל לקבוע מהר ובמבט ראשון האם המתאמים הללו מחוברים לרשתות הנכונות.
הרצת סקריפטים של PowerShell במכונות וירטואליות באמצעות Invoke-VMScript
באמצעות ה־Invoke-VMScript
, תוכל גם להריץ קוד PowerShell ישירות בתוך המכונה הווירטואלית; אין צורך בחיבור לרשת. אם בעבר השתמשת ב־PowerShell Direct בסביבת Hyper-V, תחווה חוויית דומה עם זה.
במקום ליצור סשן של PowerShell Remoting או להשתמש ב־Invoke-Command
cmdlet דרך הרשת, סשן כלילי, ה־Invoke-VMScript
cmdlet יכול לשלוח פקודות ישירות למכונה הווירטואלית ללא חיבור WinRM או SSH רגיל.
כדוגמת זאת, אולי תרצה לבצע רשימת קבצים פשוטה במכונה הווירטואלית שנקראת exchange1. כדי לעשות זאת, עליך להעביר את dir C:\
כערך עבור הפרמטר ScriptText
כפי שמוצג למטה.
התוצאות הן כאילו הפעלת את הפקודות ישירות ממסוף המכונה הווירטואלית עצמה. Invoke-VMScript
מעביר את כל הפלט של הפקודה שנפעלה על הווירטואל מכונה.

אף על פי שזוהי דוגמה בסיסית, ניתן להסתובב ברמות שונות של קושי. פקודת ה-PowerCLI הזו מאפשרת לך לציין batch, PowerShell, או Bash בתוך הפרמטר ScriptText
.
ניתן להתקדם עוד יותר. למטה ניתן לראות כיצד להשתמש ב־Invoke-VMScript
כדי להפעיל קוד PowerShell באמצעות משתנה נפרד $script
עבור הקלט של פרמטר ScriptText
. זה מאפשר לנו ליצור קלט סקריפט מותאם אישית יותר למכונה הווירטואלית לעבד.
ערך הפרמטר ScriptText
צריך להיות מחרוזת. לכן למשתנה $script
יש צורך בגרשיים חיצוניים כדי שיהיה חיוני.
כמו כן, ייתכן שהבחנת בשימוש בפרמטר GuestCredential
. הפרמטר הזה משמש לאימות לתוך מערכת ההפעלה של הווירטואל מכונה. הפרמטר הזה מיוחדות במיוחד אם ברצונך להריץ את הסקריפט כחשבון שונה.
הסקריפט שלך בפעולה צריך להביא פלט דומה למטה.

תוצאת הסקריפט הזה מספקת לנו מידע על הדיסק של הווירטואל מכונה. על סמך זה, צריך לדעת שזהו ווירטואלי מרוחק מאחר שהשם הידידותי של הדיסק הוא VMware Virtual Disk
.
התקדמות עם Get-View
אולי ראית כמה מה- cmdlets הבסיסיים מחזירים מאפיין בשם ExtensionData
. תוכל למצוא את המאפיין הזה על ידי שימוש ב- PowerCLI cmdlets לקבלת הפלט המסוים והפשוט של Get-VM
בפקודת ה- PowerShell Get-Member
. אם תתקשר מה זה, זה הזמן שלך לגלות.
השלב הבא בהרפתקה זו הוא הבנה של פקודת ה- Get-View
. VMware PowerCLI משתמשת בשאילתות שונות כדי לספק למכונה הווירטואלית את הפלט הנאה ופשוט של Get-VM
. אך יש הרבה מאחורי הקלעים שנגישים רק על ידי שימוש ב- Get-View
.
יש סיכוי גבוה שתראה הרבה סקריפטים המשתמשים בפקודה זו. כדאי לך להשקיע זמן להתרגל לראות את פקודת ה- Get-View
בפעולה. כדי להתמקד, השתמש ב- Get-View
כדי לקבל מידע על מכונה וירטואלית מסוימת (exchange1 בדוגמה זו).
תוכל לראות שאפשרויות ה- Filter
של פקודה זו דורשות שימוש ב- PowerShell hashtable ולא בערכי מחרוזת פרטניים. התרע כאשר בונה סקריפטים ייחודיים שלך!
תוצאת הפקודה למעלה היא המון מידע מוטמע ואפשרויות של שינוי נגד ה- VM או קבלת מאפייני אובייקט.

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

אולי תרצה לבחור במאפיין יחיד. אם כך, תוכל להפעיל את הפקודה הבאה כדי להגביל להפליא ערך אישי אחד.
ישנם הרבה אפשרויות ל- Get-View
לכל סוגי עצמי VMware. תרגישו חופשי לחקור את כל האפשרויות הללו ולסקור את מאמר המידע מ-VMware שמעמיק בפקודת ה- cmdlet העוצמתית הזו!
קוד תפיסת קוד VMware – ללמוד מהלחיצות שלך
אם ברצונך להנות מ-PowerCLI אך מעדיף שלא לבנות קוד על ידי הקלדה, תפיסת קוד במרכז ה-VCenter כאן בשבילך. תפיסת הקוד היא כלי פיתוח חדש שפועל בדומה למרכז הניהול של מנהל ה- Active Directory. בואו נכסה תפיסת קוד בשיעור זה על PowerCLI.
כלי זה מקליט את כל הפעולות שאתה מבצע בממשק המשתמש הגרפי. ואז הוא ממיר את כל הפעולות האלה ומספק לך סקריפטים של PowerCLI.
כברירת מחדל, תפיסת הקוד אינה מופעלת. כדי להפעיל אותו, פתח את המכונה שלך של vCenter ונווט אל תפריט -> מרכז מפתח כפי שמוצג למטה.

פעם בלשון ה- מרכז המפתחים, הפעל את אפשרות ה- הפעלת קוד.

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

כפתור ה- הרשום האדום יופיע ליד סעיף המשתמש שלך של vCenter כך שתוכל כעת להקליט בכל עת.
להדגים את אפשרות תפיסת הקוד, עברו דרך אשף יצירת מכונה וירטואלית חדשה.
- לחצו על הכפתור הקלט כדי להתחיל בהקלטה. זה יגרום לכפתור הקלט האדום להתחיל להתפעל.
- לחצו עם העכבר הימני על המחשב ה-VMware שלכם וצרו מכונה וירטואלית חדשה. עברו דרך האשף התוצאתי וצרו מכונה וירטואלית חדשה עם כל הערכים המוגדרים כברירת מחדל.
- לאחר שהמכונה הווירטואלית נוצרה, לחצו על כפתור ההקלטה ועצרו את ההקלטה שלכם.
הפלט התוצאתי עשוי להיות מעט יותר ארוך מהצפוי. הפלט כולל את כל הפעולות של דפדוף ב- GUI לפני יצירת המכונה הווירטואלית. אך אתם צפוים לראות קטע המסומן בהערות התחלה ב- CreateVM_Task
. זהו המקום בו הקוד מתחיל ליצור VM.
למטה נמצא חלק מהפלט של CreateVM_Task של תהליך אשף VM חדש ב-GUI דרך תפיסת קוד:

הפלט יכול להיות מעט מופרך, אך זה מציג אתכם ישירות למספר אפשרויות ההגדרה הזמינות למכונות הווירטואליות שלכם. בהתאם לצרכים שלכם, אתם כעת מוסמכים לבצע התאמות בתסריטים שלכם ולהתאים אותם לפי רצונכם.
הכלי לתפיסת קוד אינו מוגבל רק ליצירת VM. זה יכול גם לבנות קוד לשינויי רשת, שינויים קטנים ב- VM או שינויי תצורה של המארח. באמצעות הסקירה שלכם על הפלט של PowerCLI של פעולות ב-GUI, אתם יכולים לקצר את הדרך שלכם לתשתיות שמוטבעות כקוד.
סיכום המדריך של PowerCLI
במאמר זה, כיסית הרבה נושאים. עבודה נהדרת! אני מקווה שהבנת את העוצמה ש-PowerCLI מביא לניהול של תשתיות VMware.
ישנם הרבה cmdlets ב-PowerCLI למגוון רחב של מוצרים, אך במאמר זה כ-covernו רק חלק מהם. היה בטוח להמשיך לעקוב אחרי הבלוג הזה למאמרים נוספים על הכלי המדהים הזה!