البرمجة النصية الأساسية لـ PowerCLI لـ VMware vSphere

سبقاً، قمنا بالنظر إلى PowerCLI – ما هو، كيفية تثبيته، ودمجه في Windows Powershell ISE. الآن، دعونا نلقي نظرة على البرمجة الأساسية بما في ذلك الاتصال، أوامر PowerCLI، بالإضافة إلى الحلقات.

البرمجة الأساسية في PowerCLI

لنلقي نظرة على بعض أوامر PowerCLI الأساسية لنرى مدى سهولة بدء سحب المعلومات من بيئتنا vSphere باستخدام PowerCLI. تذكر، ما يلي لا يقصد بأي شكل من الأشكال أن يكون دليلًا شاملاً، بل مقدمة إلى PowerCLI وكيفية البدء في تشغيل الأوامر وتعلم أتمتة بيئتك.

أول أمر يجب علينا تشغيله هو الأمر الذي يتصل فعلياً ببيئتنا vSphere. يمكنك الاتصال بشكل مباشر إما بمضيف ESXi أو بخادم vCenter.

للاتصال، قم بتشغيل الأمر التالي في جلسة PowerShell التي تدعم PowerCLI:

  • connect-viserver -server 〈الخادم الخاص بك〉

عند تشغيل الأمر، ستُطلب منك بيانات اعتماد تسجيل الدخول الخاصة بك. اكتب اسم المستخدم وكلمة المرور الخاصة بك لإما مضيف ESXi أو خادم vCenter.

أحد أكثر الأوامر الأساسية التي يمكننا تشغيلها عند الاتصال بإما ESXi أو vCenter هو رؤية جميع الآليات الظاهرية في البيئة. نستخدم أمر get-vm لعرض المعلومات حول الآليات الظاهرية.

  • Get-VM - يقوم أمر get-vm بقائمة الآليات الظاهرية التي تعمل على المضيف المتصل

للحصول على مزيد من المعلومات التفصيلية من أمر get-vm، يمكننا عرض المعلومات الكاملة باستخدام الأمر:

  • Get-VM | fl – يعرض معلومات أكثر تفصيلاً مثل نظام التشغيل الضيف، ومجموعات الموارد، ومستوى إصدار الأجهزة الظاهرية، والمجلد الذي يقع فيه، والعديد من التفاصيل الأخرى.

الآن، دعونا نعيد معلومات مفيدة محددة من أمر Get-VM. لنبحث عن الآلات الظاهرية التي تكون في حالة PoweredOff. يمكننا الحصول على المعلومات من أمر Get-VM ومن ثم توجيه ذلك إلى where-object لتحديد المعلومات المحددة التي نرغب في الاستعلام عنها – في هذه الحالة PowerState. كما ترون، هناك عوالم من الإمكانيات في الحصول على معلومات متنوعة حول الآلات الظاهرية وتوجيه هذه المعلومات إلى أمر PowerShell آخر.

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

كما ترون، يعرض هذا فقط الآلات الظاهرية التي تكون في حالة “PoweredOff”. يمكن أن يكون هذا مفيدًا للغاية. يمكننا حتى توجيه نتيجة الأمر أعلاه إلى أمر Start-VM. ببساطة يمكننا الحصول على جميع الآلات الظاهرية التي تم إيقاف تشغيلها ومن ثم تشغيل تلك الآلات الظاهرية.

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

ماذا عن إيقاف تشغيل الآلات الظاهرية المحددة؟ يمكننا أيضًا القيام بذلك. يمكننا استدعاء الآلة الظاهرية بالاسم ومن ثم استخدام Stop-VMGuest الذي يبدأ إيقاف تشغيل نظام التشغيل الضيف.

  • Get-VM 〈yourvm〉 | Stop-VMguest

إذا لم ترغب في تلقي تأكيد الإجراء، يمكننا إضافة المعلمة –confirm:false:

لنفترض أننا نريد معرفة كم عدد الآليات الظاهرة لدينا التي تم تخصيص أكثر من معالج واحد. مرة أخرى، يمكننا استخدام أمر 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 "〈Port group name〉" -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/