Σωστός τερματισμός λειτουργίας του VMWare ESXi hypervisor όταν το επίπεδο φόρτισης της μπαταρίας APC UPS είναι κρίσιμο

Υπάρχουν πολλά άρθρα εκεί έξω σχετικά με το πώς να ρυθμίσετε τις παραμέτρους του PowerChute Business Edition και πώς να συνδεθείτε στο VMWare από το PowerShell, αλλά κατά κάποιο τρόπο δεν μπορούσα να τα βρω όλα αυτά σε ένα μέρος, με μια περιγραφή των λεπτών σημείων. Αλλά υπάρχουν.

1. Εισαγωγή

Παρά το γεγονός ότι έχουμε κάποια σχέση με την ενέργεια, μερικές φορές προκύπτουν προβλήματα με την ηλεκτρική ενέργεια. Εδώ μπαίνει στο παιχνίδι το UPS, αλλά οι μπαταρίες του, δυστυχώς, δεν αντέχουν πολύ. Τι να κάνω? Σβήνω!

Ενώ όλοι οι διακομιστές ήταν φυσικοί, τα πράγματα πήγαιναν καλά, το PowerChute Business Edition μας βοήθησε. Δωρεάν, για 5 διακομιστές, που ήταν αρκετά. Ένας πράκτορας, διακομιστής και κονσόλα εγκαταστάθηκαν σε ένα μηχάνημα. Καθώς πλησίαζε το τέλος, ο πράκτορας απλώς εκτέλεσε ένα αρχείο εντολών που έστειλε το shutdown.exe /s /m σε γειτονικούς διακομιστές και στη συνέχεια έκλεισε το λειτουργικό του σύστημα. Όλοι είναι ζωντανοί.
Μετά ήρθε η ώρα για εικονικές μηχανές.

2. Ιστορικό και προβληματισμοί

Τι έχουμε λοιπόν; Τίποτα απολύτως - ένας φυσικός διακομιστής με Windows Server 2008 R2 και ένας hypervisor με πολλές εικονικές μηχανές, συμπεριλαμβανομένων των 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. Εδώ είναι το πρώτο λεπτό σημείο: η υπηρεσία agent πρέπει να εκκινηθεί όχι από το σύστημα, αλλά από τον χρήστη, διαφορετικά ο πράκτορας δεν θα μπορεί να εκτελέσει το αρχείο cmd.

Στη συνέχεια εγκαταστήσαμε το .Net Framework 4.7. Απαιτείται επανεκκίνηση εδώ, ακόμα κι αν το πλαίσιο δεν το ζητήσει ρητά μετά την εγκατάσταση, διαφορετικά δεν θα προχωρήσει περαιτέρω. Στη συνέχεια, ενδέχεται να εξακολουθήσουν να υπάρχουν ενημερώσεις, οι οποίες πρέπει επίσης να εγκατασταθούν.

Στη συνέχεια εγκαταστήσαμε το PowerShell 5.1. Απαιτεί επίσης επανεκκίνηση, ακόμα κι αν δεν ρωτήσει.
Στη συνέχεια, εγκαταστήστε το PowerCLI 11.5. Αρκετά πρόσφατη έκδοση, εξ ου και οι προηγούμενες απαιτήσεις. Μπορείτε να το κάνετε μέσω του Διαδικτύου, υπάρχουν πολλά άρθρα σχετικά με αυτό, αλλά το έχουμε ήδη κατεβάσει, επομένως απλώς αντιγράψαμε όλα τα αρχεία στο φάκελο Modules.

Τετραγωνισμένος:

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

Μπορείτε επίσης να ελέγξετε τη σύνδεση: Σύνδεση-Διεύθυνση διακομιστή VIS.

Το ίδιο το σενάριο, για παράδειγμα: συνδεδεμένο, απενεργοποιημένο, αποσυνδεδεμένο για κάθε περίπτωση, είναι δυνατές οι ακόλουθες επιλογές:


    Connect-VIserver -Server $vmhost 
    Stop-VMHost $vmhost -force -Confirm:$false 
    Disconnect-VIserver $vmhost -Confirm:$false

4. Προεπιλογή.cmd

Το ίδιο αρχείο δέσμης που εκκινείται από τον πράκτορα APC. Βρίσκεται στο "C:Program Files[ (x86)]APCPowerChute Business Editionagentcmdfiles" και μέσα:

"C:Windowssystem32WindowsPowerShellv1.0powershell.exe" -Αρχείο "C:...shutdown_hosts.ps1"
Φαίνεται ότι όλα έχουν ρυθμιστεί και ελεγχθεί, ξεκινήσαμε ακόμη και το cmd - λειτουργεί σωστά, το απενεργοποιεί.

Εκτελούμε μια δοκιμή αρχείου εντολών από την κονσόλα APC (υπάρχει ένα κουμπί δοκιμής εκεί) - δεν λειτουργεί.

Εδώ είναι, εκείνη η αμήχανη στιγμή που όλη η δουλειά που έγινε δεν οδήγησε σε τίποτα.

5. Κάθαρση

Κοιτάμε το task manager, βλέπουμε cmd που αναβοσβήνει, powershell αναβοσβήνει. Ας ρίξουμε μια πιο προσεκτική ματιά - cmd *32 και, κατά συνέπεια, powershell *32. Το καταλαβαίνουμε Η υπηρεσία APC agent είναι 32-bit, που σημαίνει ότι εκτελεί την αντίστοιχη κονσόλα.

Εκκινούμε το powershell x86 ως διαχειριστής και εγκαθιστούμε και ρυθμίζουμε ξανά το PowerCLI από το βήμα 3.

Λοιπόν, ας αλλάξουμε τη γραμμή κλήσης του powershell:

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

6. Happy end!

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο