Il existe de nombreux articles sur la configuration de PowerChute Business Edition et la connexion Ă VMWare via PowerShell, mais je ne les ai pas trouvĂ©s tous rĂ©unis au mĂȘme endroit, avec des descriptions des dĂ©tails subtils. Et il y en a.
1. Introduction
Bien que nous ayons un lien avec l'Ă©nergie, des problĂšmes d'Ă©lectricitĂ© surviennent parfois. C'est lĂ qu'intervient l'onduleur, mais ses batteries, hĂ©las, ne sont pas durables. Que faire ? Ăteindre !
Tant que tous les serveurs étaient physiques, les choses se passaient plutÎt bien, PowerChute Business Edition nous aidait. C'était gratuit, sur 5 serveurs, ce qui était largement suffisant. Sur une machine, un agent, un serveur et une console étaient installés. à l'approche de la fin, l'agent exécutait simplement un fichier de commandes, qui envoyait shutdown.exe /s /m aux serveurs voisins, avant d'éteindre son propre OS. Tout le monde est en vie.
Puis est venu le moment machines virtuelles.
2. Données de base et réflexions
Alors, que avons-nous ? Pas grand-chose â un serveur physique avec Windows Server 2008 R2 et un hyperviseur avec plusieurs machines virtuelles, dont Windows Server 2019, Windows Server 2003 et CentOS. Et un onduleur â APC Smart-UPS.
Nous avons entendu parler de NUT, mais nous n'avons pas encore eu le temps de l'étudier, nous avons seulement utilisé ce qui était à portée de main, à savoir PowerChute Business Edition.
L'hyperviseur peut Ă©teindre ses machines virtuelles lui-mĂȘme, il ne reste plus qu'Ă lui faire savoir que c'est le moment. Il existe un outil utile appelĂ© VMWare.PowerCLI, une extension pour Windows PowerShell, qui permet de se connecter Ă l'hyperviseur et de lui transmettre toutes les informations nĂ©cessaires. Il y a aussi beaucoup d'articles sur la configuration de PowerCLI sur internet.
3. Processus
L'onduleur a Ă©tĂ© physiquement connectĂ© au port com du serveur 2008, heureusement qu'il Ă©tait prĂ©sent. Bien que ce ne soit pas essentiel â il aurait Ă©tĂ© possible de se connecter via un convertisseur d'interface (MOXA) Ă n'importe quel serveur Windows virtuel. Par la suite, toutes les actions se dĂ©roulent sur la machine Ă laquelle l'onduleur est connectĂ© â Windows Server 2008, sauf indication contraire. L'agent PowerChute Business Edition y a Ă©tĂ© installĂ©. C'est ici qu'intervient le premier dĂ©tail subtil : le service de l'agent doit ĂȘtre lancĂ© non pas par le systĂšme, mais par un utilisateur, sinon l'agent ne pourra pas exĂ©cuter le fichier cmd.
Ensuite, nous avons installĂ© .Net Framework 4.7. Un redĂ©marrage est requis, mĂȘme si le framework ne le demande pas explicitement aprĂšs l'installation, sinon la suite ne pourra pas se poursuivre. D'autres mises Ă jour peuvent Ă©galement ĂȘtre proposĂ©es, et il faudra les installer.
Nous avons ensuite installĂ© PowerShell 5.1. Un redĂ©marrage est Ă©galement nĂ©cessaire, mĂȘme s'il ne le demande pas.
Ensuite, installez PowerCLI 11.5. C'est une version relativement rĂ©cente, d'oĂč les exigences prĂ©cĂ©dentes. On peut le faire via Internet, de nombreux articles en parlent, mais nous l'avions dĂ©jĂ tĂ©lĂ©chargĂ©, donc nous avons juste copiĂ© tous les fichiers dans le dossier Modules.
Vérifié :
Get-Module -ListAvailableD'accord, nous voyons que nous avons installé :
Import-Module VMWare.PowerCLIOui, la console Powershell est bien lancée en tant qu'administrateur.
ParamĂštres Powershell.
- Autoriser l'exécution de tous les scripts :
Set-ExecutionPolicy Unrestricted- Ou permettre seulement d'ignorer les certificats des scripts :
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned - Autoriser PowerCLI à se connecter aux serveurs avec des certificats non valides (expirés) :
Set-PowerCLIConfiguration -InvalidCertificateAction ignore -confirm:$false- Supprimer le message de PowerCLI concernant la participation à un programme de retour d'expérience, sinon le journal sera encombré :
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false- Sauvegarder les identifiants utilisateur pour se connecter à l'hÎte VMWare afin de ne pas les révéler explicitement dans le script :
New-VICredentialStoreItem -Host address -User user -Password 'password'La vérification montrera qui nous avons sauvegardé :
Get-VICredentialStoreItemOn peut aussi vérifier la connexion : Connect-VIServer address.
Le script lui-mĂȘme, par exemple : connectĂ©, Ă©teint, dĂ©connectĂ© au cas oĂč, plusieurs options sont possibles :
Connect-VIserver -Server $vmhost
Stop-VMHost $vmhost -force -Confirm:$false
Disconnect-VIserver $vmhost -Confirm:$false
4. Default.cmd
Le fameux fichier de commande qui est lancĂ© par l'agent APC. Se trouve dans âC:Program Files[(x86)]APCPowerChute Business Editionagentcmdfilesâ, et Ă l'intĂ©rieur :
«C:Windowssystem32WindowsPowerShellv1.0powershell.exe» -File «C:âŠshutdown_hosts.ps1»
Il semble que nous avons tout configurer et vĂ©rifier, mĂȘme lancĂ© cmd â cela fonctionne correctement, il Ă©teint.
Nous lançons depuis la console APC le test du fichier de commande (il y a un bouton Test) â cela ne fonctionne pas.
Voici ce moment gĂȘnant oĂč tout le travail accompli n'a eu aucun rĂ©sultat.
5. Catharsis
Nous regardons le gestionnaire des tĂąches, nous voyons â cmd a clignotĂ©, powershell a clignotĂ©. Nous regardons de plus prĂšs â cmd *32 et, par consĂ©quent, powershell *32. Nous rĂ©alisons que le service d'agent APC est en 32 bits, ce qui signifie qu'il lance la console correspondante.
Nous lançons powershell x86 en tant qu'administrateur, faisons encore une fois l'installation et la configuration de PowerCLI du point 3.
Et nous changeons la ligne d'appel Ă powershell :
"C:Windows<b>SysWOW64</b>WindowsPowerShellv1.0powershell.exe…6. Fin heureuse !
Source : habr.com
