Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1535 connectés 

  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Infrastructures serveurs

  Script paramétrage action start et stop sur hyperV 3

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script paramétrage action start et stop sur hyperV 3

n°108107
ChaTTon2
Je l'aime !
Posté le 15-03-2013 à 10:41:25  profilanswer
 

Bonjour à tous.
 
Nous rencontrons actuellement un petit problème lors de la mise à jour de nos serveurs. Notre parc serveur en branch office est composé d'un serveur hôte abritant X VMs le tout sous Server 2012 ... Hors lors de la mise à jour des systèmes hôte pose problème ... A chaque fois qu'il redémarre, les VM sont mis en état pause, et on se tape une erreur de DB DFS au redémarrage du serveur de fichier ... :S
 
Nous avons donc décidé de modifier les actions automatiques à réaliser lors de l'arrêt du serveur Hôte comme ceci :
- Au démarrage du serveur : Démarrer toutes les VMs
- A l'arrêt du serveur : Arrêter proprement les VMs
 
Oui mais voila ... Cela fais beaucoup de manipulation car nous avons environs 30 serveurs hôtes sur la France. D'autant plus que les action à l'arrêt, ne peuvent être modifiées que lorsque la VM est éteinte...
 
De ce fait j'ai réalisé un petit script ... Il fonctionne bien en TEST, mais avant de le lancer sur de la prod, un petit regard externe ne me dérangerait pas ... Si vous voyez une erreur ou une optimisation à apporter ! JE SUIS PRENEUR ! N'étant pas vraiment un spécialiste du Scripting powershell :
 

Code :
  1. #
  2. # Script de redémarrage de serveurs hôtes HYPERV pour paramétrage action AutomaticStart & AutomaticStop.
  3. # Ce script est testé sur des hyperviseurs en version 3 sur server 2012
  4. # Version : 0.1 | Création Initiale | XXXXXXX
  5. #---------------------------------------------------------------------------------------------------------------------------
  6. # Définitions variables
  7. #
  8. # Variables Fixes
  9. $DateLog = Get-Date -UFormat "%Y_%m_%d"
  10. $Time = get-date -UFormat "%H:%M"
  11. # Variables à modifier selon l'environnement
  12. $file_path = "C:\Apps\Scripts" # Chemin local d'accès au au fichier contenant les HOSTS à redémarrer et contenant les logs à renseigner
  13. $inputfile_name = "hosts.txt" # Nom du fichier à parcourir
  14. $outputfile_log = "shut_log_$datelog.txt" # Création du fichier de log
  15. $mail_recipients = "xxxxx@xxxx.com, yyyyyyy@xxxx.com" # Variable contenant les destinataire du mail contenant le log à séparer par ", "
  16. $mail_subject = "Fichier de log de la tache planifiee de redemarrage des serveur HYPERV" # Sujet du mail contenant les logs
  17. $smtp_server = "10.150.11.142" #Adresse du serveur SMTP pour envoie mail
  18. $mail_from = "xxxx@xxxx.com" # Adresse mail mémettrice du fichier de LOG
  19. # Définition de l'entête du fichier de log
  20. sc $outputfile_log -Value "---- Log name $outputfile_log ----`r`n" -Encoding UTF8
  21. ac $outputfile_log -Value "Heure de lancement du script : $Time" -Encoding UTF8
  22. ac $outputfile_log -Value "Script exécuté depuis : $env:COMPUTERNAME" -Encoding UTF8
  23. ac $outputfile_log -Value "Script exécuté par : $env:USERNAME" -Encoding UTF8
  24. # Fin de l'entête du fichier de LOG
  25. cd $file_path
  26. $inputfile_host = Get-Content $inputfile_name
  27. ForEach ($guest in $inputfile_host) {
  28.     write-host "-------------------------------------------------------------"
  29.     ac $outputfile_log -value "`r`n-------------------------------------------------------------" -Encoding UTF8
  30.     write-host "Redémarrage de $guest :"
  31.     ac $outputfile_log -value "Redémarrade de $guest :" -Encoding UTF8
  32.     write-host "-------------------------------------------------------------"
  33.     ac $outputfile_log -value "-------------------------------------------------------------" -Encoding UTF8
  34.     write-host "VMs présentent sur l'hôte : "
  35.     ac $outputfile_log -value "`r`nVMs présentent sur $guest :" -Encoding UTF8
  36.     $inputrequest_vm = Get-VM -ComputerName $guest
  37.     foreach ($vm in $inputrequest_vm){
  38.         If ($vm.state -eq "Running" ){
  39.             # Actions réalisées si la VM est en état de Marche
  40.             Write-Host " - " $vm.name " / State : " $vm.state -ForegroundColor Red
  41.             ac $outputfile_log -value " - $($vm.name) / State : $($vm.state)" -Encoding UTF8
  42.             $time_temp=get-date
  43.             Write-Host "     o Lancement de la commande d'arrêt de la Machine virtuel ($($time_temp))"
  44.             ac $outputfile_log -value "     o Lancement de la commande d'arrêt de la Machine virtuel ($($time_temp))" -Encoding UTF8
  45.             Stop-VM $vm
  46.             $time_temp=get-date
  47.             Write-Host "     o Le serveur à bien été arrêté ($($time_temp))"
  48.             ac $outputfile_log -value "     o Le serveur à bien été arrêté ($($time_temp))" -Encoding UTF8
  49.             Write-Host "     o Paramétrage des option d'AutomaticStartAction et AutomaticStopAction à Start and ShutDown"
  50.             ac $outputfile_log -value "     o Paramétrage des option d'AutomaticStartAction et AutomaticStopAction à Start and ShutDown" -Encoding UTF8
  51.             set-vm -ComputerName $guest -Name $vm.Name -AutomaticStartAction Start -AutomaticStopAction ShutDown
  52.         } Else {
  53.             # Actions réalisées si la VM est en état STOP
  54.             Write-Host " - " $vm.name " / State : " $vm.state -ForegroundColor Green
  55.             ac $outputfile_log -value " - $($vm.name) / State : $($vm.state)" -Encoding UTF8
  56.             write-host "   La VM est déjà dans un état permettant à l'hote d'être redémarré. Aucune Action n'est requise."
  57.             ac $outputfile_log -value "   La VM est déjà dans un état permettant à l'hote d'être redémarré. Aucune Action n'est requise." -Encoding UTF8
  58.             Write-Host "     o Paramétrage des option d'AutomaticStartAction et AutomaticStopAction à Start and ShutDown"
  59.             ac $outputfile_log -value "     o Paramétrage des option d'AutomaticStartAction et AutomaticStopAction à Start and ShutDown" -Encoding UTF8
  60.             set-vm -ComputerName $guest -Name $vm.Name -AutomaticStartAction Start -AutomaticStopAction ShutDown
  61.         }
  62.     }
  63. Restart-Computer $guest
  64. }
  65. Send-MailMessage -From $mail_from -Subject $mail_subject -To $mail_recipients -Attachments $file_path"\"$outputfile_log  -SmtpServer $smtp_server
  66. #


---------------
Mon feed-back : http://forum.hardware.fr/hfr/Achat [...] 1974_1.htm
mood
Publicité
Posté le 15-03-2013 à 10:41:25  profilanswer
 

n°108109
nebulios
Posté le 15-03-2013 à 10:59:41  profilanswer
 

Ca ressemble plus à du VBScript qu'à du Powershell :/
 
Sers-toi du pipe au lieu de faire des boucles de goret :/

n°108111
Je@nb
Modérateur
Kindly give dime
Posté le 15-03-2013 à 11:28:53  profilanswer
 

Tu peux pas plutôt configurer le start/stop behaviour des VM en cas d'extinction et démarrage de l'hôte ? Mettre les VM en suspend qd le serveur s'arrête sauf celles où c'est problématique, et mettre le démarrage auto des VM ?

n°108114
ChaTTon2
Je l'aime !
Posté le 15-03-2013 à 11:40:28  profilanswer
 

nebulios a écrit :

Ca ressemble plus à du VBScript qu'à du Powershell :/

 

Sers-toi du pipe au lieu de faire des boucles de goret :/


Comme je le dis ... Je ne suis pas spécialiste ... Mais le pipe ... Comment veux-tu que je me serve d'un pipe pour parcourir mon fichier texte ? J'ai une boucle qui me sert à parcourir les VM

 

edit : 2, j'en ai une aussi pour parcourir le fichier texte :p

Je@nb a écrit :

Tu peux pas plutôt configurer le start/stop behaviour des VM en cas d'extinction et démarrage de l'hôte ? Mettre les VM en suspend qd le serveur s'arrête sauf celles où c'est problématique, et mettre le démarrage auto des VM ?


J'ai l'impression que ce que tu dis c'est ce que je fais :) Dans une VM tu trouves ce paramètre dans Automatic Start Action et automatic Stop Action (rubrique management) ... C'est ça ?

 

Je les mets toutes à Stop car comme cela on profite du redémarrage de l'hôte pour les MAJ des VMs :) C'est surtout que par la suite les gars réfléchirons avant de mettre la machine en prod, à bien paramétrer ce champs ... En gros on ne va le lancer qu'une fois ;)


Message édité par ChaTTon2 le 15-03-2013 à 11:43:58

---------------
Mon feed-back : http://forum.hardware.fr/hfr/Achat [...] 1974_1.htm
n°108118
Je@nb
Modérateur
Kindly give dime
Posté le 15-03-2013 à 11:56:26  profilanswer
 

Ah, si tu le lances qu'une fois ok, mais oui c'est bien de ces paramètres que je parle.

n°108119
ChaTTon2
Je l'aime !
Posté le 15-03-2013 à 11:59:17  profilanswer
 

Je@nb a écrit :

Ah, si tu le lances qu'une fois ok, mais oui c'est bien de ces paramètres que je parle.


"start/stop behaviour " est quand même plus simple à comprendre que mes 200 lignes d'explication :) Vais m'en reservir :p


---------------
Mon feed-back : http://forum.hardware.fr/hfr/Achat [...] 1974_1.htm

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Systèmes & Réseaux Pro
  Infrastructures serveurs

  Script paramétrage action start et stop sur hyperV 3

 

Sujets relatifs
Paramétrage PABX MD EvolutionRecherche témoignage Comvault sur infra hyperV (2 ou 3)
Lenteur Copies Données sur disque VHD / VHDx - HyperV[RESOLU] Script utilisateur attendre l'explorateur
[script]XP : désactiver demande mot de passe veille prolongééParamétrage d'un modem routeur 3G Teltonyka Rut 500
Script ShadowCopyWindows 8 et net use via GPO logon script
Problème script robocopy 
Plus de sujets relatifs à : Script paramétrage action start et stop sur hyperV 3


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR