1 المقدمة
على الرغم من حقيقة أن لدينا شيئًا ما يتعلق بالطاقة ، تظهر مشاكل الكهرباء في بعض الأحيان. هذا هو المكان الذي يتم فيه تشغيل UPS ، لكن بطارياته ، للأسف ، ليست متينة. ماذا أفعل؟ أغلق!
طالما كانت جميع الخوادم مادية ، كانت الأمور تسير على ما يرام ، مع PowerChute Business Edition الذي يساعدنا. مجاني ، لـ 5 خوادم ، وهو ما يكفي تمامًا. تم تثبيت الوكيل والخادم ووحدة التحكم على جهاز واحد. مع اقتراب النهاية ، قام الوكيل ببساطة بتنفيذ ملف دفعي ، حيث تم إرسال shutdown.exe / s / m إلى الخوادم المجاورة ، ثم قام بإطفاء نظام التشغيل الخاص به. الجميع على قيد الحياة.
ثم جاء وقت الآلات الافتراضية.
2. الخلفية والأفكار
اذن ماذا عندنا؟ لا شيء على الإطلاق - خادم فعلي واحد يعمل بنظام التشغيل Windows Server 2008 R2 ومراقب واحد به عدة أجهزة افتراضية ، بما في ذلك Windows Server 2019 و Windows Server 2003 و CentOS. و UPS آخر - APC Smart-UPS.
سمعنا عن NUT ، لكننا لم نضع أيدينا عليها بعد ، استخدمنا فقط ما كان في متناول اليد ، وهو PowerChute Business Edition.
برنامج Hypervisor قادر على إيقاف تشغيل أجهزته الافتراضية من تلقاء نفسه ، كل ما تبقى هو إخباره أن الوقت قد حان. هناك شيء مفيد من هذا القبيل VMWare.PowerCLI هو امتداد لـ Windows Powershell ، يسمح لك فقط بالاتصال بـ Hypervisor وإخباره بكل ما تحتاجه. هناك أيضًا العديد من المقالات حول إعدادات PowerCLI في الأماكن المفتوحة.
3. العملية
تم توصيل UPS فعليًا بمنفذ com لخادم 2008 ، منذ ذلك الحين. على الرغم من أن هذا ليس ضروريًا - فقد كان من الممكن الاتصال من خلال محول الواجهة (MOXA) بأي خادم افتراضي يعمل بنظام Windows. علاوة على ذلك ، يتم تنفيذ جميع الإجراءات على الجهاز الذي يتصل به UPS - Windows Server 2008 ، ما لم ينص صراحة على خلاف ذلك. تم تثبيت وكيل PowerChute Business Edition عليه. هذه هي النقطة الدقيقة الأولى: يجب أن تبدأ خدمة الوكيل ليس من النظام ، ولكن من المستخدم ، وإلا فلن يتمكن الوكيل من تنفيذ ملف cmd.
ثم قمنا بتثبيت NET Framework 4.7.1. إعادة التشغيل مطلوبة هنا ، حتى لو لم يطلب إطار العمل ذلك صراحة بعد التثبيت ، وإلا فلن يذهب أبعد من ذلك. بعد ذلك ، قد تستمر التحديثات في الظهور ، وتحتاج أيضًا إلى تثبيتها.
بعد ذلك ، قمنا بتثبيت PowerShell 5.1.يلزم أيضًا إعادة التشغيل ، حتى لو لم يُطلب منك ذلك.
بعد ذلك ، قم بتثبيت PowerCLI 11.5. نسخة جديدة تمامًا ، من هذا والمتطلبات السابقة. من الممكن عبر الإنترنت ، هناك العديد من المقالات حول هذا الموضوع ، لكننا قمنا بتنزيله بالفعل ، لذلك قمنا فقط بنسخ جميع الملفات في مجلد الوحدات النمطية.
التحقق:
Get-Module -ListAvailable
حسنًا ، نرى ، مثبتًا:
Import-Module VMWare.PowerCLI
نعم ، تم إطلاق وحدة التحكم Powershell بالطبع من المسؤول.
إعدادات Powershell.
- السماح بتنفيذ أي نصوص:
Set-ExecutionPolicy Unrestricted
- أو السماح بتجاهل شهادات البرنامج النصي فقط:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
- السماح لـ PowerCLI بالاتصال بالخوادم بشهادات غير صالحة (منتهية الصلاحية):
Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false
- قم بإلغاء إخراج رسالة PowerCLI المتعلقة بالانضمام إلى برنامج التبادل ، وإلا فسيكون هناك الكثير من الأشياء غير الضرورية في السجل:
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false
- احفظ بيانات اعتماد المستخدم لتسجيل الدخول إلى مضيف برنامج VMWare ، حتى لا تعرضها بشكل صريح في البرنامج النصي:
New-VICredentialStoreItem -Host address -User user -Password 'password'
سيُظهر التحقق من أنقذناه:
Get-VICredentialStoreItem
يمكنك أيضًا التحقق من الاتصال: عنوان Connect-VIServer.
البرنامج النصي نفسه ، حسنًا ، على سبيل المثال: متصل ، مطفأ ، غير متصل فقط في حالة ، الخيارات ممكنة:
Connect-VIserver -Server $vmhost
Stop-VMHost $vmhost -force -Confirm:$false
Disconnect-VIserver $vmhost -Confirm:$false
4. Default.cmd
نفس الملف الدفعي الذي يقوم عامل APC بتشغيله. تقع في "C: \ Program Files [(x86)] \ APC \ PowerChute Business Edition \ agent \ cmdfiles" وداخل:
"C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ owershell.exe" -ملف "C : \ ... \ shutdown_hosts.ps1 "
يبدو أنه تم إعداد كل شيء وفحصه ، حتى أنه بدأ كمد - يعمل بشكل صحيح ، ويوقف تشغيله.
نقوم بتشغيل فحص ملف الأوامر من وحدة تحكم APC (يوجد زر اختبار) - لا يعمل.
ها هي تلك اللحظة المحرجة عندما لم يؤد العمل المنجز إلى أي شيء.
5. التنفيس
ننظر إلى مدير المهام ، ونرى - وميض cmd ، وميض بوويرشيل. دعونا نلقي نظرة فاحصة - cmd * 32 ، وبالتالي ، بوويرشيل * 32. نحن نتفهم أن خدمة وكيل APC هي 32 بت ، مما يعني أنها تقوم بتشغيل وحدة التحكم المقابلة.
قم بتشغيل بوويرشيل x86 كمسؤول ، وقم بتثبيت وتكوين PowerCLI من الخطوة 3 مرة أخرى ،
وتغيير خط استدعاء بوويرشيل:
"C:\Windows\<b>SysWOW64</b>\WindowsPowerShell\v1.0\powershell.exe…