{{tag>Bionic Focal Jammy windows programmation powershell pwsh vmware powercli vrops metrologie }}
====== VMware vRealize Operations ======
VMware **vRealize Operations**, dit **vROps**, est un logiciel de métrologie de serveurs.
Nous allons voir ici comment y accéder en ligne de commande sous Linux.
===== Prérequis =====
Avoir [[powershell|Powershell]] d'installé sous votre Ubuntu.
Un serveur vROps **Serveur-vROps.intra** opérationnel et les droits utilisateur suffisant pour accéder à ce serveur.
===== Installation =====
exécuter Powershell en root :
sudo pwsh
Installer le module client VMware :
install-module -name VMware-PowerCLI
===== Configurations initiales =====
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false
Pour voir la version de son client :
Get-PowerCLIVersion
Ensuite il faut ignorer les erreurs d'identification de certificat https :
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore
===== Connexion au serveur =====
Vous pouvez vous connecter au serveur avec
$vrops = Connect-OMServer -Server Serveur-vROps.intra -User "votrenomutilisateur" -Password "motdepasse" -AuthSource "Domaine"
===== Exemple d'utilisation =====
Pour exécuter un rapport
Recherche des éléments du rapport :
Import-Module VMware.VimAutomation.vROps
Get-OMResource -Name "vSphere World" | Select-Object Id
Id
--
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
$vrops.ExtensionData.GetReportDefinitions($null, $null, "Oversized Virtual Machines").ReportDefinition
Name : Optimization Report - Oversized Virtual Machines
Description : Oversized VMs Report.
Subject : {Virtual Machine}
Traversalspecs : {Custom Datacenters, Application Dependency, vSphere Hosts and Clusters, vSphere Storage…}
LastRunTime : 01/01/0001 00:00:00
LastRunTimeSpecified : False
Owner : admin
Links :
Any :
Id : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
CreationTime : 01/01/0001 00:00:00
Active : True
ActiveSpecified : True
AnyAttr :
Définition du rapport à utiliser :
$TraversalSpec = New-Object VMware.VimAutomation.VROps.Views.TraversalSpec
$TraversalSpec.Name = "vSphere Hosts and Clusters"
$TraversalSpec.RootAdapterKindKey = "VMWARE"
$TraversalSpec.RootResourceKindKey = "vSphere World"
$Report = New-Object VMware.VimAutomation.VROps.Views.Report
$Report.ResourceId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$Report.ReportDefinitionId = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
$Report.TraversalSpec = $TraversalSpec
Exécution du rapport :
$vrops.ExtensionData.CreateReport($Report)
Name :
Description : Oversized VMs Report.
ResourceId : aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
ReportDefinitionId : bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
TraversalSpec :
Subject : VirtualMachine VirtualMachine
Owner : cccccccc-cccc-cccc-cccc-cccccccccccc
CompletionTime : null
Status : QUEUED
Links : {linkToSelf, linkToResource, linkToReportDefinition}
Any :
Id : zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
AnyAttr :
Récupération du rapport :
$vrops.ExtensionData.GetReport("zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz")
Name :
Description : Oversized VMs Report.
ResourceId : aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
ReportDefinitionId : bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
TraversalSpec :
Subject : VirtualMachine VirtualMachine
Owner : cccccccc-cccc-cccc-cccc-cccccccccccc
CompletionTime : Tue Feb 28 11:14:27 UTC 2023
Status : COMPLETED
Links : {linkToSelf, linkToResource, linkToReportDefinition}
Any :
Id : zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
AnyAttr :
Récupérer le rapport :
$DataReport = $vrops.ExtensionData.GetReport("zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz")
$DataReport.Links
Description Href Rel Name
----------- ---- --- ----
/suite-api/api/reports/pppppppp-pppp-pppp-pppp-pppppppppppp SELF linkToSelf
/suite-api/api/resources/rrrrrrrr-rrrr-rrrr-rrrr-rrrrrrrrrrrr RELATED linkToResource
/suite-api/api/reportdefinitions/ssssssss-ssss-ssss-ssss-ssssssssssss RELATED linkToReportDefinition
Par lien WEB :
https://Serveur-vROps.intra/ui/vcops/services/download/report/getCSV?reportId=pppppppp-pppp-pppp-pppp-pppppppppppp
Pour récupérer le rapport dans le script :
git clone https://github.com/ryan-jan/vROps-Reports.git
Import-Module ./vROps-Reports/vROps-Reports/vROps-Reports.psd1
Receive-OMReport -Report $DataReport -CSV -Path "./Rapport.csv"
Receive-OMReport -Report $DataReport -PDF -Path "./Rapport.pdf"
Pour le récupérer sans le module externe :
$MemoryStream = New-Object System.IO.MemoryStream
$DataReport.DownloadReport($MemoryStream, "CSV")
$ReadStream = New-Object System.IO.StreamReader($MemoryStream)
$MemoryStream.Seek(0, "Begin")
while ($ReadStream.Peek() -ne -1) {
$ReadStream.ReadLine() >> Rapport1.csv
}
sed -i '/^$/d' ./Rapport.csv
===== Voir aussi =====
*[[:Nagios]]
*[[:Shinken]]
*[[:Sysstat]] [[https://ubunlog.com/fr/systat-herramienta-monitorizar-ubuntu|Blog tutoriel]]
*[[:Munin]]
*[[:Powershell]]