خاموش شدن برازنده هایپروایزر VMWare ESXi در سطح بحرانی باتری UPS APC

مقالات زیادی در مورد نحوه پیکربندی PowerChute Business Edition و نحوه اتصال به VMWare از PowerShell وجود دارد، اما به نوعی نتوانستم همه اینها را در یک مکان پیدا کنم، با توضیح نکات ظریف. اما آنها وجود دارند.

1. مقدمه

با وجود اینکه ما تا حدودی با انرژی ارتباط داریم، گاهی اوقات مشکلاتی برای برق به وجود می آید. اینجاست که یو پی اس وارد بازی می شود، اما باتری های آن، افسوس، دوام زیادی ندارند. چه باید کرد؟ خاموش کن!

در حالی که همه سرورها فیزیکی بودند، همه چیز خوب پیش می رفت، PowerChute Business Edition به ما کمک کرد. رایگان، برای 5 سرور، که کاملا کافی بود. یک عامل، سرور و کنسول روی یک دستگاه نصب شد. با نزدیک شدن به پایان، عامل به سادگی یک فایل دستوری را اجرا کرد که shutdown.exe /s /m را به سرورهای همسایه ارسال کرد و سپس سیستم عامل خود را خاموش کرد. همه زنده اند
سپس نوبت به ماشین های مجازی رسید.

2. پیشینه و بازتاب

خیله خب پس ما چه چیزی داریم؟ اصلا هیچی - یک سرور فیزیکی با ویندوز سرور 2008 R2 و یک هایپروایزر با چندین ماشین مجازی از جمله ویندوز سرور 2019، ویندوز سرور 2003 و CentOS. و یک یو پی اس دیگر - APC Smart-UPS.

ما در مورد NUT شنیده‌ایم، اما هنوز به مطالعه آن نرسیده‌ایم؛ ما فقط از آنچه در دسترس بود، یعنی PowerChute Business Edition استفاده کردیم.

هایپروایزر می تواند خود ماشین های مجازی خود را خاموش کند؛ تنها چیزی که باقی می ماند این است که به او بگوید زمان آن فرا رسیده است. یک چیز مفید VMWare.PowerCLI وجود دارد، این افزونه ای برای Windows Powershell است که به شما امکان می دهد به Hypervisor متصل شوید و هر آنچه را که نیاز دارید به آن بگویید. همچنین مقالات زیادی در مورد تنظیمات PowerCLI وجود دارد.

3. فرآیند

UPS به طور فیزیکی به پورت com سرور 2008 متصل بود، خوشبختانه در آنجا بود. اگرچه این مهم نیست - امکان اتصال از طریق مبدل رابط (MOXA) به هر سرور مجازی ویندوز وجود داشت. علاوه بر این، تمام اقدامات بر روی دستگاهی که UPS به آن متصل است - Windows Server 2008 انجام می شود، مگر اینکه به صراحت خلاف آن ذکر شده باشد. عامل PowerChute Business Edition روی آن نصب شد. اولین نکته ظریف اینجاست: سرویس agent باید نه از سیستم، بلکه از کاربر راه اندازی شود، در غیر این صورت عامل قادر به اجرای فایل cmd نخواهد بود.

سپس .Net Framework 4.7 را نصب کردیم. در اینجا راه اندازی مجدد مورد نیاز است، حتی اگر فریم ورک پس از نصب به صراحت آن را درخواست نکند، در غیر این صورت بیشتر از این پیش نخواهد رفت. پس از آن، به‌روزرسانی‌ها ممکن است همچنان بیایند، که آنها نیز باید نصب شوند.

سپس PowerShell 5.1 را نصب کردیم. همچنین نیاز به راه اندازی مجدد دارد، حتی اگر نپرسد.
سپس PowerCLI 11.5 را نصب کنید. یک نسخه کاملاً جدید، از این رو الزامات قبلی. شما می توانید این کار را از طریق اینترنت انجام دهید، مقالات زیادی در این مورد وجود دارد، اما ما قبلا آن را دانلود کرده ایم، بنابراین فقط تمام فایل ها را در پوشه Modules کپی کردیم.

بررسی شد:

Get-Module -ListAvailable

خوب، می بینیم که نصب کرده ایم:

Import-Module VMWare.PowerCLI

بله، کنسول Powershell البته به عنوان Administrator راه اندازی شده است.

تنظیمات پاورشل

  • اجازه اجرای هر اسکریپت:

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)]APCPowerChute Business Editionagentcmdfiles» و در داخل:

"C:Windowssystem32WindowsPowerShellv1.0powershell.exe" -فایل "C:...shutdown_hosts.ps1"
به نظر می رسد همه چیز پیکربندی و بررسی شده است، ما حتی cmd را راه اندازی کردیم - به درستی کار می کند، آن را خاموش می کند.

ما یک آزمایش فایل فرمان را از کنسول APC اجرا می کنیم (یک دکمه تست در آنجا وجود دارد) - کار نمی کند.

اینجاست، آن لحظه ناخوشایند که تمام کارهای انجام شده به هیچ منجر نشده است.

5. کاتارسیس

ما به مدیر وظیفه نگاه می کنیم، فلش های cmd، فلاش های powershell را می بینیم. بیایید نگاهی دقیق‌تر بیندازیم - cmd *32 و بر این اساس، powershell *32. ما این را درک می کنیم سرویس عامل APC 32 بیتی است، به این معنی که کنسول مربوطه را اجرا می کند.

powershell x86 را به‌عنوان مدیر راه‌اندازی می‌کنیم و PowerCLI را دوباره از مرحله 3 نصب و پیکربندی می‌کنیم.

خوب، بیایید خط تماس powershell را تغییر دهیم:

"C:Windows<b>SysWOW64</b>WindowsPowerShellv1.0powershell.exe…

6. پایان خوش!

منبع: www.habr.com

اضافه کردن نظر