PI Services

Le blog des collaborateurs de PI Services

Script – Deploiement Config Agent NSCP (Nagios)

 

Le script ci-dessous propose d’automatiser le déploiement du fichier de config de l’agent nscp (nsclient.ini) et de fichier de scripts/commandes associés.

Lien du script plus bas.

### SCRIPT DE DEPLOIEMENT DES SCRIPTS/ FICHIERS NSC VERS AGENT NSCP # Chemin du fichier du/des scripts a uploader vers le répertoire scripts de l'agent nsclient $SourceScript="D:\TEMP\SCRIPTS_TO_SEND\MyScript.ps1" # Chemin du fichier NSC Mis a jour, a transferer $SourceInifile="D:\TEMP\CONFIG_TO_SEND\nsclient.ini" #Chemin du repertoire et du sous repertoire Scripts de l'agent Nsclient $NSCProgPath="c$\Program Files\NSClient++" $NSCScriptsPath="c$\Program Files\NSClient++\Scripts" #Chemin du log $logdate=get-date -Format ddMMyyyy--HHmm $log="D:\TEMP\log_$logdate.txt" #Fonction de backup du fichier nsclient.ini Function backup-nscfile ($computer) { Try { copy-item "\\$computer\$NSCProgPath\nsclient.ini" -Destination "\\$computer\$NSCProgPath\nsclient.ini.bak" -ErrorAction Continue } Catch { write-host -BackgroundColor White -ForegroundColor red "Erreur lors de la sauvegarde du fichier nsclient.ini sur $computer" "Erreur lors de la sauvegarde du fichier nsclient.ini sur $computer" | Out-File $log -Append } } #Fonction de copie du nouveau fichier nsclient Function copy-nscfile ($computer) { Try { copy-item $SourceInifile -Destination "\\$computer\$NSCProgPath\" -Force -ErrorAction Continue } Catch { write-host -BackgroundColor White -ForegroundColor red "Erreur lors de la copie du nouveau fichier nsclient.ini sur $computer" "Erreur lors de la copie du nouveau fichier nsclient.ini sur $computer" | Out-File $log -Append } } #Fonction de copie du/des scripts Function copy-script ($computer) { Try { copy-item $SourceScript -Destination "\\$computer\$NSCScriptsPath\" -Force -ErrorAction Continue } Catch { write-host -BackgroundColor White -ForegroundColor red "Erreur lors de la copie du script sur $computer" "Erreur lors de la copie du script sur $computer" | Out-File $log -Append } } #Liste de machines cibles $computers=@("SERVER1";"SERVER2";"SERVER3";"SERVER4";"SERVER5") # Affichage du fichier nsc foreach ($computer in $computers) { #Horodatage $datetime=get-date "$datetime - $computer :" | Out-File $log -Append write-host -BackgroundColor White -ForegroundColor Blue "$computer :" ; if (!(Get-ChildItem -Path "\\$computer\$NSCProgPath\" -ErrorAction SilentlyContinue | Where-Object {$_.Name -eq "nsclient.ini"})) { Write-Host -BackgroundColor White -ForegroundColor Red "Le chemin vers le fichier de config nsclient.ini n'a pas été trouvé sur $computer" "Le chemin vers le fichier de config nsclient.ini n'a pas été trouvé sur $computer" | Out-File $log -Append } Else { write-host -BackgroundColor White -ForegroundColor Blue "copie du fichier de script ..." copy-script -computer $computer write-host -BackgroundColor White -ForegroundColor Blue "backup et remplacement du fichier nsclient.ini..." backup-nscfile -computer $computer copy-nscfile -computer $computer write-host -BackgroundColor White -ForegroundColor Blue "Redemarrage du service nscp..." Get-Service -Name nscp -ComputerName $computer | Restart-Service } }