סקריפטינג בסיסי של PowerCLI עבור VMware vSphere

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

סקריפטינג בסיסי של PowerCLI

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

פקודת ה-PowerCLI הראשונה שעלינו להפעיל היא הפקודה להתחבר בפועל לסביבת vSphere שלנו. תוכל להתחבר ישירות למארח ESXi או לשרת vCenter.

כדי להתחבר, הפעל את הפקודה הבאה בתוך הפעלת PowerShell המאפשרת PowerCLI:

  • connect-viserver –server 〈yourserver〉

כאשר תפעיל את הפקודה, תתבקש לספק את פרטי הכניסה שלך. הקלד את שם המשתמש והסיסמה שלך עבור שרת ESXi או שרת vCenter.

אחת מהפקודות הבסיסיות ביותר שאנו יכולים להפעיל כאשר אנו מתחברים ל-ESXi או לשרת vCenter היא לראות את כל המכונות הוירטואליות בסביבה. אנו משתמשים בפקודת ה-get-vm כדי להציג מידע אודות מכונות ה-VM האורחות.

  • Get-VM - פקודת ה-get-vm מפרטת את מכונות ה-VM הפועלות במארח המחובר

כדי לקבל מידע מפורט יותר מפקודת ה-get-vm, אנו יכולים להציג את המידע המלא עם הפקודה:

  • Get-VM | fl – מציג מידע מפורט יותר כמו מערכת הפעלה אורח, בריכות משאבים, רמת גרסת חומרת VM, תיקייה בה היא ממוקמת, ועוד פרטים רבים.

כעת, בואו נחזיר מידע מסוים מהפקודה Get-VM. בואו נמצא את ה-VMs שנמצאים במצב PoweredOff. אנו יכולים לקבל מידע מהפקודה Get-VM ולאחר מכן לנפות את זה אל where-object כדי לבחור את המידע הספציפי שאנו רוצים לשאול עליו – במקרה זה PowerState. כפי שניתן לראות, יש עולמות של אפשרויות לקבלת מידע רבים על VM ולנפת את המידע הזה לתוך פקודה אחרת של PowerShell.

  • Get-VM | where-object {$_.PowerState –eq “PoweredOff”}

כפי שניתן לראות, זה מציג רק את ה-VMs שנמצאים במצב הכוח "מופעל". זה יכול להיות קריטי ביותר. נוכל אפילו לנפת את תוצאת הפקודה למעלה לפקודה של Start-VM. לכן בעצם אנו יכולים לקבל את כל ה-VMs שכובו ולאחר מכן להדליק את ה-VMs האלו.

  • Get-VM | where-object {$_.PowerState –eq “PoweredOff”} | Start-VM

מה עם לכבות את ה-VMs הספציפיות? אנו יכולים לעשות גם את זה. אנו יכולים לקרוא ל-VM לפי השם ולאחר מכן להשתמש ב-Stop-VMGuest שמפעיל כיבוי של מערכת ההפעלה האורחת.

  • Get-VM 〈שמךשלהVM〉 | Stop-VMguest

אם אינך רוצה לקבל את אישור הפעולה, נוכל להוסיף את הפרמטר –confirm:false:

1 CPU מוקצה. שוב, אנו יכולים להשתמש בפקודת where-object כדי לבחור את העצם NumCpu.

  • Get-VM | where-object {$_.NumCpu –gt 1 }

לולאות PowerCLI

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

foreach ($var in $vars){
עשה משהו…
}

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

Get-vm | where-object {$_.MemoryGB –eq 4 } | select -ExpandProperty Name | out-file c:\VMs.txt

$vms = get-content c:\VMs.txt

Foreach-object ($vm in $vms) {
new-networkadapter -vm $vms -NetworkName "〈שם קבוצת פורטים〉" -Type "VMXNET3" –startconnected
}

משאבים

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

A great place to start with documentation and other resources is the official VMware PowerCLI release and documentation site. Here, you can download the binaries as well as the official User’s Guide.

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

מחשבות

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

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

Source:
https://www.nakivo.com/blog/basic-powercli-scripting-vmware-vsphere/